OpenCV矩形检测
Posted 我爱计算机视觉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV矩形检测相关的知识,希望对你有一定的参考价值。
点击我爱计算机视觉标星,更快获取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君拉你入群(请务必注明:加群):
(不会时时在线,如果没能及时通过验证还请见谅)
更多技术干货,详见:
长按关注我爱计算机视觉
【点赞与转发】就是一种鼓励
以上是关于OpenCV矩形检测的主要内容,如果未能解决你的问题,请参考以下文章