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
赶紧试用一下吧,你也能做出一个扫描全能王了~
加群交流
赞 (0)