我没有计算机视觉的背景,但我很想知道如何使用OpenCV库来实现以下目标:
我有一罐备用按钮,颜色,款式和直径各异。在大多数情况下,它们是循环的。我将它们均匀地散布在一张白纸上,在良好的光线下,用普通的数码相机拍摄相当高分辨率的照片。我如何切割此图像以单独抓取每个按钮作为单独的对象/图像?
提前致谢。
答案 0 :(得分:4)
两种可能的方式:
1)使用圆形霍夫变换 你运行一些边缘探测器(canny / sobel),然后进行圆形霍夫变换。你会得到圈子。
2)使用轮廓 使用阈值分隔按钮和背景。检测此阈值图像中的轮廓,您有按钮!
可能有用的文章:
免责声明:这些是我网站的链接。
答案 1 :(得分:2)
我认为您可以尝试的最简单的事情是:运行Canny边缘检测器并应用Hough变换来检测圆圈并从每个圆圈生成单独的图像。
答案 2 :(得分:1)
我一直在做一些菜识别,它工作得很好。这样做:
做一些阈值处理(按钮应该比背景更亮),只留下按钮,
然后是cvFindContours
每个轮廓:
霍夫变换也是可能的,但它更昂贵。