为什么这个数组在放入有吗?

2024-05-15 18:34:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着通过截图来识别屏幕上的一个物体,应用一些基本的过滤器,然后用过滤器应用后的图像减去它的外观。图像相减的结果应该是一个只填充了[0。。。(也就是说所有相减的像素都匹配,对吧?),但当我把数组放到np.任何函数它总是返回True,这意味着数组中的某些内容是不同的。但问题是我一直在打印这些数组进行调试,它们都显示为:

[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]

怎么回事?这个数组不应该返回False吗?你知道吗

#The problem code

difference = cv2.subtract(mainImg,img)
print(difference)
result = np.any(difference)

Tags: the函数图像falsetrue过滤器内容屏幕
1条回答
网友
1楼 · 发布于 2024-05-15 18:34:04

如注释所示,不可能知道正确的输出应该是什么,因为当您打印它时,数组的某些元素被抑制。你知道吗

注释中再次建议使用np.nonzero仅显示数组的非零元素。您还可以使用np.where来查找这些元素的索引,这些索引将标识图像中不同的部分。你知道吗

不过,我建议您不要使用np.any来判断图像是否不同。如果你对图像进行数字滤波和处理,这将引入噪声,通常会导致它们总是不同的。您可能需要使用^{}这样的函数来测试这两个图像是否在某个给定的公差范围内,这个公差可以自己选择。你知道吗

相关问题 更多 >