opencv矩形检测python_python-如何在openCV中识别不完整的矩形

本文介绍了如何使用OpenCV处理可能存在缺失边的矩形检测问题。通过腐蚀和膨胀等形态学操作封闭矩形,然后反转图像并进行阈值处理,最后使用ShapeDetector类识别图像中的形状,从而在不完整的矩形上实现检测。
摘要由CSDN通过智能技术生成

我如何解决从图像中识别和提取矩形的问题,如下图所示.

请注意,我的矩形可能不完整,并且缺少一些边,而某些边可能是部分线.

谢谢 !

cgEPA.png

解决方法:

可以使用morphological操作(例如eroding and dilating)来解决.这两个操作将有助于创建闭合的矩形.

之后,您可以使用page中的教程来检测简单的形状,例如矩形.

我实现了一个快速演示,该演示适用于您提供的图像.

main.py:

import cv2

import numpy as np

from shapeDetector import ShapeDetector

import imutils

img = cv2.imread('t.png')

kernel = np.ones((5,5),np.uint8)

erosion = cv2.erode(img,kernel,iterations = 10)

dilate = cv2.dilate(erosion,kernel,iterations = 10)

腐蚀会使所有线条变粗,因此要恢复正常宽度,我们需要在腐蚀后进行扩张.我建议对扩张操作进行一次评论,以了解侵蚀的工作原理,反之亦然.

此操作将像这样改变您的图像cUSjr.png

我使用的检测算法期望在黑色背景上出现白线.

这就是为什么我们需要反转图像.

cv2.bitwise_not ( dilate, di

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值