python cv2 LSD 修改参数

这个LSD https://github.com/primetang/pylsd是封装好的,不知道哪儿改参数,原始的LSD检测前会将图片缩小至80%,当图片很小是,之后检测的线会减少。

可以直接用opencv-python里面的createLineSegmentDetector()函数,用help查看用法,再根据需要修改参数。我这边选择检测前不缩放,那么_scale=1

LSD代码:

img = cv2.imread(imagepath, cv2.IMREAD_COLOR)
	gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

	lsd = cv2.createLineSegmentDetector(0, _scale=1) 

	dlines = lsd.detect(gray)  

	for dline in dlines[0]:     
		x0 = int(round(dline[0][0]))     
		y0 = int(round(dline[0][1]))    
		x1 = int(round(dline[0][2]))     
		y1 = int(round(dline[0][3]))     
		cv2.line(img, (x0, y0), (x1,y1), 255, 1, cv2.LINE_AA) 

    cv2.imwrite('./lines.png', img)

也参考opencv:cv::LineSegmentDetector Class Reference

https://docs.opencv.org/trunk/db/d73/classcv_1_1LineSegmentDetector.html

猜你喜欢

转载自blog.csdn.net/summermaoz/article/details/103827822