python - 使用OpenCV检测图像中的盒子

标签 python opencv image-processing deep-learning computer-vision

我需要使用opencv在以下图像中找到框。我曾尝试使用mser,但没有得到任何良好的结果。

我的MSER代码:

mser = cv2.MSER_create()
img = cv2.imread('Lines.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
I = img.copy()
regions, _ = mser.detectRegions(I)
hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions]
mask = np.zeros((img.shape[0], img.shape[1], 1), dtype=np.uint8)
c=0
points=[]
for contour in hulls:
    [x, y, w, h] = cv2.boundingRect(contour)
    if w < 50 or h < 8 or w>120:
        continue
    c=c+1
    cv2.rectangle(I, (x, y), (x + w, y + h), (255, 0, 255), 0)
plt.figure(1,figsize=(100, 50))
plt.imshow(I)

MSER的结果:

最佳答案

由于您的输入图像是反转的,因此请使用带有适当结构元素的“膨胀”来放大末端区域,然后应用MSER。

关于python - 使用OpenCV检测图像中的盒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51818763/

相关文章:

image - golang 中的动画 gif - 创建 *image.Paletted

python - 如何提高此图像中的 OCR 准确度?

python - 我如何获得图像识别的概率

Python `hyper` 库在我的环境中不起作用

python - Azure FUnctions Enum RpcLogCategory 内的 Pinecone 没有为名称 'User' 定义值

opencv - 如何获取 OPENCV 实现中关键点的方向比例位置信息?

image-processing - 为什么这个 gif 似乎有 0ms 的持续时间?我怎样才能找到真正的持续时间?

python - 获取列表中多次出现的项目的唯一列表

python 'Assertion Error (depth == CV_32F || depth == CV_64F)'

matlab - 与Matlab一起使用OpenCV:mex找不到头文件