C++ 用OpenCV检测边缘图像中的矩形
我想在图像中检测多个(相似的)矩形对象,这些对象中有很多子结构。因此,我目前的计划是使用高斯模糊、形态学和边缘检测(C++ 用OpenCV检测边缘图像中的矩形,c++,image,opencv,image-processing,hough-transform,C++,Image,Opencv,Image Processing,Hough Transform,我想在图像中检测多个(相似的)矩形对象,这些对象中有很多子结构。因此,我目前的计划是使用高斯模糊、形态学和边缘检测(Canny)。使用边缘检测后,我得到以下结果(阈值参数非常低): 最后我想要的是大矩形的轮廓。见: 目前,我试图通过使用HoughLines和findContours来实现这一点。为了让它工作,我需要大量修改Canny和HoughLines的阈值参数 当我对一幅图像进行正确处理时,参数很可能对下一幅图像不起作用(例如,前一幅图像中的边缘不太占优势,导致hough变换检测到太多线)。
Canny
)。使用边缘检测后,我得到以下结果(阈值参数非常低):
最后我想要的是大矩形的轮廓。见:
目前,我试图通过使用HoughLines
和findContours
来实现这一点。为了让它工作,我需要大量修改Canny
和HoughLines
的阈值参数
当我对一幅图像进行正确处理时,参数很可能对下一幅图像不起作用(例如,前一幅图像中的边缘不太占优势,导致hough变换检测到太多线)。另一个问题是,有时内部结构与外部边缘的一侧具有相同或更少的优势
我试图使用一个更强烈的模糊或形态学,但在某一点上,这模糊了矩形之间的小间隙
我是否可以在给定边缘图像的情况下提取较大的矩形(最好使用opencv)?
获得4个角点就足够了。您可以发布原始图像吗?您应该尝试使用DOG-Difference of GaussianIs来检测轮廓,您可以尝试使用固定矩形的大小(或至少相对稳定)?您知道
approxPolyDP
和匹配形状
函数吗?p、 在美国张贴你的代码,因为没有它,人们只能猜测到目前为止,关于什么是或是没有遗漏在那里。