【发布时间】:2019-07-26 04:24:00
【问题描述】:
我尝试使用阈值、canny 边缘和应用轮廓检测来检测图像中的所有矩形,但它无法检测到所有矩形。最后,我想使用hough 变换来检测相同的内容,但是当我尝试检测图像中的线条时,我得到了所有线条。我只需要检测图像中的矩形框。有人能帮我吗?我是opencv的新手。
输入图片
代码:
import cv2
import matplotlib.pyplot as plt
import numpy as np
img = cv2.imread("demo-hand-written.png",-1)
#img = cv2.resize(img,(1280,720))
edges = cv2.Canny(img,180,200)
kernel = np.ones((2,2),np.uint8)
d = cv2.dilate(edges,kernel,iterations = 2)
e = cv2.erode(img,kernel,iterations = 2)
#ret, th = cv2.threshold(img, 220, 255, cv2.THRESH_BINARY_INV)
lines = cv2.HoughLinesP(edges,1,np.pi/180,30, maxLineGap=20,minLineLength=30)
for line in lines:
#print(line)
x1,y1,x2,y2 = line[0]
cv2.line(img,(x1,y1),(x2,y2),(0,255,0),3)
cv2.imshow("image",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
【问题讨论】:
标签: python opencv image-processing