OpenCV矩形检测

Posted 我爱计算机视觉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV矩形检测相关的知识,希望对你有一定的参考价值。

点击我爱计算机视觉标星,更快获取CVML新技术



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



矩形检测有什么用?


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


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

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


OpenCV矩形检测


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


https://github.com/alyssaq/opencv


其算法流程:

1.中值滤波去噪;

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

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

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

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

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

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


该代码效果还是不错的!


OpenCV矩形检测


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


https://github.com/alyssaq/opencv


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


加群交流


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

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


更多技术干货,详见:



长按关注我爱计算机视觉

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


以上是关于OpenCV矩形检测的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV矩形检测

opencv 矩形检测与计数

opencv 矩形检测与计数

使用 OpenCV 进行矩形检测/跟踪

在 OpenCV 中检测不完整的矩形(缺少角/短边)

使用霍夫变换opencv android进行矩形文档检测