我正在创建一个程序来自动将太阳能电池从光伏模块中分离出来,我首先使用自适应阈值对图像进行阈值处理以获得以下图像
之后,我打算通过使用膨胀来去除单元边界内的黑色像素,为此我使用了大小为 (10,10) 的椭圆结构元素并获得了以下图像
如您所见,仍然有一些黑色像素,现在如果我增加结构元素的大小,我会丢失单元格边界
我已经尝试了其他可用的结构元素,例如交叉和矩形,但没有任何成功,因此我需要定义一个自定义内核并且不知道如何定义一个。
import numpy as np
import cv2
img=cv2.imread('result2.jpg',0)
th1 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
cv2.THRESH_BINARY,25,-2)
kernel=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(15,15))
closing = cv2.morphologyEx(th1, cv2.MORPH_CLOSE, kernel)
cv2.imwrite('closing.jpg',closing)
cv2.imwrite('threshold.jpg',th1)
cv2.waitKey(0)
cv2.destroyAllWindows()