我一直在玩OpenCV,并且有很多试验和错误已经设法学习如何检测照片中的圆圈(硬币) . 一切都很好,除非我直接将硬币放在一起(如下所示,忽略了第二张图像倒置的事实) .
看起来因为硬币是如此接近,cvFindContours认为它们是同一个对象 . 我的问题是如何将这些轮廓分成单独的对象,或者获得已经分离的轮廓列表 .
我用于cvFindContours的参数是:
cvFindContours( img, storage, &contour, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0, 0) );
任何帮助或建议将不胜感激 .
2 回答
这不是很好,但它显示了如何到达那里:
您可以尝试阈值处理(cvThreshold)图像,然后侵蚀(cvErode)生成的二进制图像以分离硬币 . 然后找到侵蚀图像的轮廓 .