我对计算机视觉没有背景,但我很好奇如何使用OpenCV库来实现以下目标:
我有一个备用纽扣罐头,颜色、样式和直径各不相同。大部分是圆形的。我将它们均匀地散布在一张白纸上,在良好的光线下,用普通数码相机拍摄一张相当高分辨率的照片。我该如何切割这个图像以单独获取每个纽扣作为一个独立的对象/图像?
提前致谢。
我对计算机视觉没有背景,但我很好奇如何使用OpenCV库来实现以下目标:
我有一个备用纽扣罐头,颜色、样式和直径各不相同。大部分是圆形的。我将它们均匀地散布在一张白纸上,在良好的光线下,用普通数码相机拍摄一张相当高分辨率的照片。我该如何切割这个图像以单独获取每个纽扣作为一个独立的对象/图像?
提前致谢。
两种可能的方法:
1)使用圆形霍夫变换 您运行一些边缘检测器(Canny/Sobel),然后进行圆形霍夫变换。您将获得圆形。
2)使用轮廓 使用阈值分离按钮和背景。在此二值化图像中检测轮廓,您就拥有了按钮!
可能会有帮助的文章:
免责声明:这些是链接到我的网站。
我一直在做一些盘子识别,效果还不错。可以这样做:
进行一些阈值处理(按钮应该比背景更亮)以仅保留按钮,
然后使用cvFindContours
对于每个轮廓:
Hough变换也是可能的,但它要昂贵得多。