我开发了一个机器人,可以在管道移动时捕捉管道内部的图像。要求是能够检测到内部的裂缝。到目前为止,我尝试了几个找到裂纹轮廓的 OpenCV 代码,但没有成功。
我正在处理的代码:
import cv2
import numpy as np
image = cv2.imread('pipe_photo1.jpg')
blurred = cv2.pyrMeanShiftFiltering(image,41,91)
gray = cv2.cvtColor(blurred,cv2.COLOR_BGR2GRAY)
ret, threshold = cv2.threshold(gray,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
_, contours, _ = cv2.findContours(threshold, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
print (len(contours))
cv2.drawContours(image,contours, -1,(0,0,255),6)
cv2.namedWindow("Display",cv2.WINDOW_NORMAL)
cv2.imshow("Display",image)
cv2.waitKey()
下面是我从相机获得的图像。我只想检测管道底部显示的裂缝并能够使用红线绘制它。您的帮助将真正帮助我在到期前实现我的目标。