我又接到了学校的任务。这一次,我的老师给我的任务是创建算法来计算图片上有多少只鸭子。
图片与此类似:
我想我应该使用模式识别来搜索上面有多少只鸭子。但我不知道每只鸭子都匹配哪种模式。
我又接到了学校的任务。这一次,我的老师给我的任务是创建算法来计算图片上有多少只鸭子。
图片与此类似:
我想我应该使用模式识别来搜索上面有多少只鸭子。但我不知道每只鸭子都匹配哪种模式。
我认为您可以通过分割鸭子的喙并计算二值图像中连通分量的数量来解决这个问题。
要分割鸭子的喙,首先将图像转换为HSV 颜色空间,然后使用色调分量执行二值化。请注意,鸭子的喙部色调与图像的其他部分不同。
这可能只是因为我现在正在与 SIFT 合作,但对我来说,它看起来可能对您的问题有好处。
它是一种在两张不同图片上匹配同一对象的算法,其中对象可以具有不同的方向、比例,并在两张图片上从不同的角度进行查看。当一个对象被另一个对象部分隐藏(就像你的鸭子一样)时,它也可以工作。
我建议找到一个清晰的橡皮鸭图片( :D ),然后使用一些 SIFT 实现(VLFeat - C library with SIFT but no visualization , SIFT++ - based on VLFeat, but in C++ , Rob Hess in C with OpenCV ...)。
您应该记住,与 SIFT(和其他任何东西)匹配并不完美 - 因此您可能无法获得图片中橡皮鸭的确切数量。
这是一种方法:
圆的霍夫变换:
所以这非常简洁,但它可以让你开始。