我有一个image,我对它进行了二值化,问题是我想去除图像中没有连接成循环的白点,即小白点。原因是我想对该部分进行测量,如图here.所示
我尝试了一些OpenCV形态学函数,比如腐蚀、打开、关闭,但结果不是我所需要的。我也尝试过使用精明的边缘,但一些对角线,我想一些处理也不见了。here 是thresh(左)和canny(右)的结果
我已经读到修剪是一个过程中,我们删除像素没有连接,但我不知道它是如何工作的?Opencv中是否有相应的函数?你知道吗
th3 = cv2.adaptiveThreshold(gray_img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2)
th3=~th3
th3 = cv2.dilate(th3, cv2.getStructuringElement(cv2.MORPH_RECT,(3,3)))
th3 = cv2.erode(th3, cv2.getStructuringElement(cv2.MORPH_RECT,(5,5)))
edged = cv2.Canny(gray_img,lower,upper)
这个答案解释了如何测量钻头的直径:
第一步是将图像读取为2通道(灰度),并使用Canny过滤器查找边缘:
钻孔的边缘使用
np.argmax()
:每列中的钻孔直径如下所示:
所有这些都假设您有一个对齐的图像。我使用this code对齐图像。你知道吗
相关问题 更多 >
编程相关推荐