我正在尝试使用自定义内核来提取给定图像中的边界线。
我正在使用的过滤器是np.array([[-2, -1, 0], [-1, 10, 1], [0, 1, 2]])
。
对于给定的一组相似性质的图像,代码会生成结果,有时有时会出现阴影,而其他图像则不存在阴影。
我无法弄清楚为什么会这样。我已经阅读了有关自定义过滤器以及过滤器如何工作的信息,但是它不能解决我的问题。
代码如下:
import cv2
import sys
import numpy as np
im_name = sys.argv[1]#give path to the image
im = cv2.imread(im_name, 0)
im_copy = im.copy()
#create custom filter
my_filter = np.array([[-2, -1, 0], [-1, 10, 1], [0, 1, 2]])
dst = cv2.filter2D(im, -1, my_filter)
cv2.imshow("test", im)
cv2.imshow("check", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
图片1
和2
显示异常结果,其余图片显示预期
results