在进行边缘检测时,可以通过设置最小线段长度来过滤掉一些过短的线段,从而减少噪声和错误检测。具体实现方法如下:
使用OpenCV进行边缘检测,并设置最小线段长度为100像素:
import cv2
img = cv2.imread('image.png', 0)
edges = cv2.Canny(img, 100, 200, apertureSize=3) lines = cv2.HoughLinesP(edges, 1, cv2.PI/180, minLineLength=100, maxLineGap=10)
对于每一个检测到的线段,判断其长度是否大于等于100像素:
for line in lines: x1, y1, x2, y2 = line[0] length = ((x2-x1)**2 + (y2-y1)**2)**0.5 if length >= 100: cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
最终,将满足要求的线段在图像中绘制出来。
上一篇:边缘检测中的静态噪声