set 的成员资格似乎不起作用 (python)

set's membership seems not to work (python)

我正在研究一种图像搜索算法,可以找到特定颜色的特定形状;为了节省时间,我只在两个不同的集合中注册了形状周长的一半,一组用于形状使用的行,一组用于形状使用的列。这个想法是,每当我找到一个具有目标颜色的点时,我就会检查这个点的行和列是否在一个主集中(它有之前的两个集);如果它们是我跳过它,如果它们不是那么我初始化 2 个递归函数来注册形状的第一行和第一列。

由于是学校的项目,我的图片是专门定制的

代码为

for y in range(height):
    for x in range(width):
        if img[y][x] == target:
            if y in master_set and x in master_set:
                continue
            else:
                row = set()
                column = set()
                flood_fillv2_y(img,x,y,target,column)
                flood_fillv2_x(img,x,y,target,row)
                row=frozenset(row)
                column=frozenset(column)
                master_set.add(row)
                master_set.add(column)

然后的想法是检查 master_set 的 len 以查看我有多少形状,但正如我所说,我得到的是 y 和 x 永远不会在主集中,所以它一直这样做对于形状的所有点,导致数字错误。

没有看到整个代码很难给出一个好的答案,但我可以给出一个猜测:

master_set.add(row) 从字面上将冻结集 row 添加到 master_set,但您可能希望将集合中的 所有元素 添加到master_set。看看集合的 update() 方法。

这有帮助吗?