我想找到使用Python的暗边。
输入图像(100 X 100):
它由几个水平板组成:顶部,中部,底部。
我想找到中间板边界框,如:
我使用了几种边缘检测方法(prewitt_x,sobel_x,cv2.findContours),但检测不到。
因为边缘btw黑色区域和电路板区域暗淡。
我怎样才能找到像红盒子一样的边框?
下面的代码是使用prewitt_x和cv2.findContours:
的示例import cv2
import numpy as np
img = cv2.imread('my_dir/my_img.bmp',0)
# prewitts_x
kernelx = np.array([[1,1,1],[0,0,0],[-1,-1,-1]])
img_prewittx = cv2.filter2D(img, -1, kernelx)
img_prewittx_gray = cv2.cvtColor(img_prewittx, cv2.COLOR_BGR2GRAY)
cv2.imwrite('my_outdir/my_outimg.bmp',img_prewittx)
# cv2.findContours
image, contours, hierarchy = cv2.findContours(img_prewittx_gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
rects = [cv2.boundingRect(cnt) for cnt in contours]
print(rects)
事实上,我不想像Canny探测器那样使用较慢的一种。
帮帮我:)