gpt4 book ai didi

python - 如何使用OpenCV-Python顺利检测焊接接头?

转载 作者:行者123 更新时间:2023-12-02 17:21:17 25 4
gpt4 key购买 nike

我已尝试使用此问题最后一部分中随附的代码检测 Weld 接头( Weld )。我的目标是在关节上绘制轮廓,如第三幅图所示,但是我的结果很差并且看起来与预期的结果不相似。这是我所做的摘要,但是代码很清楚:
1.读取图像.jpg格式
2.图像模糊
3.阈值
4.形态运算
5.创建蒙版
6.寻找轮廓

但是结果并不乐观,我如何才能摆脱困境

img_new = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
blur_image = cv2.bilateralFilter(img_new,5,21,21)
thresh = cv2.adaptiveThreshold(blur_image,255,
cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
cv2.THRESH_BINARY_INV,15,3)
kernel = np.ones((5,5),dtype='uint8')
thresh_dilated = cv2.dilate(thresh, kernel, iterations = 1)
num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(thresh_dilated, connectivity=4)
sizes = stats[1:,-1]
min_size = 5000
num_labels = num_labels -1
img2 = np.zeros((labels.shape))
for i in range(0,num_labels):
if sizes[i]>=min_size:
img2[labels==i+1]=255
closing = cv2.morphologyEx(img2,cv2.MORPH_CLOSE,kernel)
opening = cv2.morphologyEx(closing,cv2.MORPH_OPEN,kernel)
result = opening.copy()
new_result = result.astype(dtype=np.uint8)

black = np.full((new_result.shape[0],new_result.shape[1],3),(0,0,0),np.uint8)
black1 = cv2.ellipse(black,(700,750),(300,140),0,0,360,(255,255,255),-1)
grayscale = cv2.cvtColor(black1,cv2.COLOR_BGR2GRAY)
ret,b_mask = cv2.threshold(grayscale,127,255,0)
img_result = cv2.bitwise_and(new_result,b_mask)

contours, hierarchy = cv2.findContours(img_result, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,255,0), 2)
cv2.imshow('result',img)
cv2.waitKey(0)```

最佳答案

阅读任何papers吗?

这是否可以自动处理装配线上的许多 Weld 接头?这是否必须适用于许多其他类似图像?在这种情况下,微调单个图片的算法是没有意义的。

如果是,那么您将需要使用更多图像来创建算法,或者使用不同的灯光设置,也许是在 Weld 后立即用红外摄像机拍摄的图像以获得“热”掩模。或分别使用左眼和右眼的光线将两个图像合并为一个标记。

另一非常有用的事情是从零件中获得“之前”的图像。没有 Weld 接头。在这种情况下,它可能变得容易。您只需创建图像之间的差异,进行一些过滤以除去焊珠和红色层。

编辑1:

我忘记提及的另一件事是请分别查看RGB层。这是您应该始终尽早尝试的事情。通常,您会发现一些有用的东西,例如在您的情况下,蓝色层可能很有趣。请在您的问题中添加图层。

关于python - 如何使用OpenCV-Python顺利检测焊接接头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62113343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com