OpenCV矩形检测

OpenCV矩形检测

需求:提取图像中的矩形,图像存在污染现象,即矩形区域不是完全规则的矩形。

思路一:轮廓法

OpenCV里提取目标轮廓的函数是findContours,它的输入图像是一幅二值图像,输出的是每一个连通区域的轮廓点的集合:vector<vector<Point>>。外层vector的size代表了图像中轮廓的个数,里面vector的size代表了轮廓上点的个数。

该方法的问题,得到的轮廓并不规则,(1)如何变成规则的长方形?直接取包围盒?(2)斑点状的边缘区域太多?通过面积虑除?

 

思路二:形态学分割

问题是分割出来了三个区域,(1)由于上面噪声的存在,需要想办法剔除散斑状的区域,这个不好处理!通过包围盒的长度?(2)可是是否可以保证检索数目的正确性呢?

思路三:区域生长

 

思路四:积分图像Integral Image

 

思路五,边缘直方图法,采用sobel算子提取边缘线,然后水平,垂直分别做直方图

 

参考资料:

OpenCV 矩形轮廓检测  

penCV探索之路(六):边缘检测(canny、sobel、laplacian) 

梯度与Roberts、Prewitt、Sobel、Lapacian算子 

提取轮廓两种方法及绘制轮廓中最大等级分析

posted @ 2017-09-10 16:33  太一吾鱼水  阅读(4010)  评论(0编辑  收藏  举报