OpenCV矩形检测

[复制链接]
查看64019 | 回复0 | 2024-1-10 09:31:57 | 显示全部楼层 |阅读模式
点击我爱计算机视觉标星,更快获取CVML新技术



今天在52CV交流群里有朋友问到矩形检测的问题,恰好前几天做了一个与此相关的项目,调研了一下相关的算法(期间被某带bug的开源代码坑了很久,为防止大家掉进坑里),就把我认为比较好的的一种开源实现分享给大家。



矩形检测有什么用?

世界上有各种各样的形状,但机器视觉中我们关注的形状却往往是规则的,比如圆形(OpenCV有霍夫变换函数可以直接检测),椭圆(之前分享过一篇非常棒的博文:开源、快速、高精度的椭圆检测—你值得拥有!),矩形。

一个非常熟悉的例子是 拍摄的文本的预处理。

将文档定位出矩形,然后透视变换校正,方便后续的OCR。



虽然矩形检测看起来不难,好像是只要定位到四条边判断两两直线夹角就好了,但要做好也不是那么简单的,Code用时方恨少,这篇博文你一定要收藏啊!

分享的开源代码地址:

https://github.com/alyssaq/opencv

其算法流程:

1.中值滤波去噪;

2.依次提取不同的颜色通道(BGR)检测矩形;

3.对每一通道使用canny检测边缘或者使用多个阈值二值化;

4.使用findContours函数查找轮廓;

5.使用approxPolyDP函数去除多边形轮廓一些小的波折;

6.找到同时满足面积较大和形状为凸的四边形;

7.判断轮廓中两两邻接直线夹角余弦是否小于0.3(意味着角度在90度附近),是则此四边形为找到的矩形。

该代码效果还是不错的!



仅依赖OpenCV,linux和windows下的编译都很简单。

再发一下地址:

https://github.com/alyssaq/opencv

赶紧试用一下吧,你也能做出一个扫描全能王了~

加群交流

关注计算机视觉与机器学习技术,欢迎加入52CV群,扫码添加52CV君拉你入群(请务必注明:加群):



喜欢在QQ交流的童鞋,可以加52CV官方QQ群:928997753。

(不会时时在线,如果没能及时通过验证还请见谅)

更多技术干货,详见:

新年快乐!"我爱计算机视觉"干货集锦与新年展望



长按关注我爱计算机视觉



【点赞与转发】就是一种鼓励

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则