小编J H*_*idu的帖子

如何检测给定图像中的所有矩形框

我尝试使用阈值、精明边缘和应用轮廓检测​​来检测图像中的所有矩形,但它无法检测到所有矩形。最后,我想到使用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()
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing

7
推荐指数
2
解决办法
1万
查看次数

使用 OpenCV 改进图像中的矩形轮廓检测

我正在尝试检测给定图像中的矩形框

原图: 原图 但是图像不足以检测矩形,我该如何改进它并检测图像中的所有矩形?

我尝试使用canny边缘检测和应用扩张,双边滤波器将图像转换为二值图像,然后输出是这样的:

二值图像

我尝试应用所有的morphologyEx,sobel 然后我无法检测到图像中的所有矩形。如果我能够找到矩形的所有边界,那么我可以使用 find countours 检测所有矩形,但如何改进图像以检测所有矩形。

下面给出了给定转换的代码

img =  cv2.imread("givenimage.png",0)
img = cv2.resize(img,(1280,720))
edges = cv2.Canny(img,100,200)
kernal = np.ones((2,2),np.uint8)
dilation = cv2.dilate(edges, kernal , iterations=2)
bilateral = cv2.bilateralFilter(dilation,9,75,75)
contours, hireracy = cv2.findContours(bilateral,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
for i,contour in enumerate(contours):
    approx = cv2.approxPolyDP(contour, 0.01*cv2.arcLength(contour,True),True)   
    if len(approx) ==4:
        X,Y,W,H = cv2.boundingRect(approx)
        aspectratio = float(W)/H
        if aspectratio >=1.2 :
            box = cv2.rectangle(img, (X,Y), (X+W,Y+H), (0,0,255), 2)
            cropped = img[Y: Y+H, X: X+W]
            cv2.drawContours(img, [approx], 0, (0,255,0),5)
            x = approx.ravel()[0]
            y = approx.ravel()[1] …
Run Code Online (Sandbox Code Playgroud)

python opencv image image-processing computer-vision

6
推荐指数
2
解决办法
5522
查看次数