OpenCV矩形检测
需求:提取图像中的矩形,图像存在污染现象,即矩形区域不是完全规则的矩形。
思路一:轮廓法
OpenCV里提取目标轮廓的函数是findContours,它的输入图像是一幅二值图像,输出的是每一个连通区域的轮廓点的集合:vector<vector<Point>>。外层vector的size代表了图像中轮廓的个数,里面vector的size代表了轮廓上点的个数。
该方法的问题,得到的轮廓并不规则,(1)如何变成规则的长方形?直接取包围盒?(2)斑点状的边缘区域太多?通过面积虑除?
思路二:形态学分割
问题是分割出来了三个区域,(1)由于上面噪声的存在,需要想办法剔除散斑状的区域,这个不好处理!通过包围盒的长度?(2)可是是否可以保证检索数目的正确性呢?
思路三:区域生长
思路四:积分图像Integral Image
思路五,边缘直方图法,采用sobel算子提取边缘线,然后水平,垂直分别做直方图
参考资料:
penCV探索之路(六):边缘检测(canny、sobel、laplacian)