【发布时间】:2021-01-14 12:52:03
【问题描述】:
我试图通过将它们彼此相减来检查两张图像是否相同。 我正在使用 cv2.countNonZero 检查非零像素的数量。 问题是,在对图像进行任何更改之前,我得到了大约 3000 个非零像素,并且在新图像中(由减法创建)我可以看到所有这些像素,但是在我使用高斯之后- blur (cv2.GaussianBlur(image1,(3,3),0)) 我得到了大约 6000 个非零像素,但新图像全是黑色的。
如果我的描述不清楚,这里是代码:
image1 = cv2.imread(path1)
image2 = cv2.imread(path2)
#Gaussian Filtering
gaus_image1 = cv2.GaussianBlur(image1,(3,3),0)
gaus_image2 = cv2.GaussianBlur(image2,(3,3),0)
gaus_diff = cv2.subtract(gaus_image1, gaus_image2)
print(str(cv2.countNonZero(cv2.cvtColor(gaus_diff, cv2.COLOR_BGR2GRAY))))
cv2.imshow('gaus_diff.png', gaus_diff)
什么会导致这种行为? 黑色图像有这么多非零像素是否有意义? 如果是,是否有其他方法可以验证图像是否全黑?
谢谢。
【问题讨论】:
标签: python opencv gaussianblur