Python 检测由多个斑点形成的线条
在我对原始图像设置阈值后,我得到如下结果 和 红色圆圈部分是我想要检测的对齐斑点(因为这些斑点来自嘈杂的背景,我想去除它们),因此我可以在opencv中创建一个用于修复的遮罩,并去除这些强噪声 现在我只有一种方法可以从第一张图像中检测对齐的斑点。 所以我连接,扩张,腐蚀,做了霍夫检测Python 检测由多个斑点形成的线条,python,opencv,computer-vision,object-detection,hough-transform,Python,Opencv,Computer Vision,Object Detection,Hough Transform,在我对原始图像设置阈值后,我得到如下结果 和 红色圆圈部分是我想要检测的对齐斑点(因为这些斑点来自嘈杂的背景,我想去除它们),因此我可以在opencv中创建一个用于修复的遮罩,并去除这些强噪声 现在我只有一种方法可以从第一张图像中检测对齐的斑点。 所以我连接,扩张,腐蚀,做了霍夫检测 kernel = np.ones((1,10), np.uint8) c_im = cv2.morphologyEx(invthresh, cv2.MORPH_CLOSE,kernel) d_im = cv2.d
kernel = np.ones((1,10), np.uint8)
c_im = cv2.morphologyEx(invthresh, cv2.MORPH_CLOSE,kernel)
d_im = cv2.dilate(c_im, kernel, iterations=2)
c2_im = cv2.morphologyEx(d_im, cv2.MORPH_CLOSE,kernel)
e_im = cv2.erode(c2_im, kernel, iterations=2)
image_l = e_im
#line detection
rho = 1
theta = np.pi / 180
threshold = 15
min_line_length = 150
max_line_gap = 30
line_image = np.copy(image_l) * 0
# Run Hough
lines = cv2.HoughLinesP(image_l, rho, theta, threshold, np.array([]),
min_line_length, max_line_gap)
points = []
for line in lines:
for x1, y1, x2, y2 in line:
points.append(((x1 + 0.0, y1 + 0.0), (x2 + 0.0, y2 + 0.0)))
cv2.line(line_image, (x1, y1), (x2, y2), (255, 0, 0), 5)
lines_edges = cv2.addWeighted(image_l, 0.8, line_image, 1, 0)
ret2, lines_mask = cv2.threshold(lines_edges,254,255,cv2.THRESH_BINARY)
cv2.imshow('lines_mask',lines_mask)
这是结果图像
和
在我的例子中,我可以使用它作为Mask_1,并将其与原始灰度图像中的另一个阈值矩阵相乘(得到较暗的像素)
但我的方法有几个问题