我试图在opencv(Python)中使用Hough变换删除方框(垂直和水平线) . 问题是没有检测到垂直线 . 我已经尝试了查看轮廓和层次结构,但是这个图像中有太多的轮廓,我很困惑如何使用它们 .
在查看相关帖子后,我玩了阈值和rho参数,但这没有帮助 . 我已附上代码以获取更多详细信息 . 为什么Hough变换找不到图像中的垂直线?欢迎任何解决此任务的建议 . 谢谢 .
输入图片:
Hough转换图片:
绘制轮廓:
import cv2
import numpy as np
import pdb
img = cv2.imread('/home/user/Downloads/cropped/robust_blaze_cpp-300-0000046A-02-HW.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 140, 255, 0)
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,0,255), 2)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
minLineLength = 5
maxLineGap = 100
lines = cv2.HoughLinesP(edges,rho=1,theta=np.pi/180,threshold=100,minLineLength=minLineLength,maxLineGap=maxLineGap)
for x1,y1,x2,y2 in lines[0]:
cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)
cv2.imwrite('probHough.jpg',img)
1 回答
说实话,我不是寻找线条,而是寻找白色的盒子 .
整个剧本是一体的: