我再次上学了。这一次,我的老师给了我创建算法来计算图片中有多少只鸭子的任务。
图片与此类似:
我想我应该使用模式识别来搜索它上面有多少只鸭子。但我不知道每只鸭子的模式匹配。
答案 0 :(得分:6)
我认为你可以通过分割鸭子的喙并计算二进制图像中connected components的数量来解决这个问题。
要分割鸭子的喙,首先将图像转换为HSV color space,然后使用色调组件执行二值化。请注意,鸭子的喙色调与图像的其他部分不同。
答案 1 :(得分:2)
这可能只是因为我现在正在使用SIFT,但对我而言,它似乎对你的问题有好处。
这是一种算法,它匹配两个不同图片上的相同对象,其中对象可以具有不同的方向,比例并且可以从两个图片上的不同视角观看。当一个对象被另一个对象部分隐藏(就像你的鸭子一样)时,它也可以工作。
我建议找到一张关于橡皮鸭的清晰画面(:D),然后使用一些SIFT实现(VLFeat - C library with SIFT but no visualization, SIFT++ - based on VLFeat, but in C++ ,Rob Hess in C with OpenCV ...)。< / p>
你应该记住,与SIFT(以及其他任何东西)匹配并不完美 - 因此你可能无法获得图片中完全数量的橡皮鸭。
答案 2 :(得分:2)
这是一种方式:
圆圈的霍夫变换:
所以这很简洁,但它可以让你开始。