我正在为形状检测编写小型应用程序。我首先需要做的是在图像上找到最重要的形状。我从一些预处理开始,包括将图像转换为灰度,阈值和边缘检测。之前这些操作后,图像呈现以下形状检测 - 使用OpenCV进行轮廓逼近
之前
所以后,你可以看到主要的形状是可见的(但它是一个有点散),还有一些噪音(小树等)。我需要做的只是提取最重要的形状(最大的形状) - 在这种情况下,它是一个塔。 我想要做的是在opencv中使用轮廓查找功能,然后以某种方式使用多边形发现contogimate。然后,我会(以某种方式)计算countours的面积,并只选择最大的一个。 到目前为止,我manged(只)用找到的轮廓
cvFindContours(crated,g_storage,&contours);
我知道有一个
cvApproxPoly
功能,但我不能得到任何有用的信息,这个函数的结果。 有人可以告诉我是否可以计算轮廓面积或近似多边形轮廓。也许你更清楚如何提取最重要的形状?
作为二元化过程的一个附件。总是很难找到一个好的阈值。我总是计算一个海图并寻找“低点”。在那里你通常有一个nive阈值。 如果您使用JPEG,此方法可能无法很好地工作。 – 2012-11-29 08:20:08