Ton*_*yRo 5 opencv image-segmentation watershed
我正在开展一个项目,要求我:
查看包含相对明确定义的对象的图像,例如
并挑选出一些空间(无论是RGB,HSV等等)的n-most(它是通用的,可能是1,2,3等等)突出物体的颜色并将其返回.
我正在研究将像这样的图像分割成独立对象的方法.一旦完成,我的印象是,找到段的轮廓并分析它们的平均或质心颜色等并不是特别困难......
我简要介绍了Watershed算法,它似乎可以工作,但我不确定如何为不确定数量的blob生成标记图像.
分割这样一个图像的最佳方法是什么,如果它正在使用Watershed,那么生成整数的相应标记图像的最佳方法是什么?
我不是专家,但我真的不明白分水岭算法如何对您的分割问题非常有用。
根据我对此类问题的有限经验/接触,我认为可行的方法是尝试使用滑动窗口方法进行分割。基本上,这需要使用设定大小的窗口遍历图像,并尝试确定窗口是否包含背景与对象。您将需要尝试不同的窗口大小和步骤。
这样做应该允许您检测图像中的对象,假设图像包含相对明确的对象。您还可以尝试在将图像转换为黑白后使用特定阈值执行分割,这样可以很好地分离背景与对象。
通过滑动窗口识别对象后,您可以尝试使用您提到的方法之一来确定最突出的颜色。
更新
根据您的评论,这是另一种可能适合您的潜在方法:
如果您认为对象的颜色基本一致,您可能会尝试将图像处理为:
您还可能受益于将图像重新采样为较低的分辨率(即,如果图像为 1024 x 768,您可能会将其减小到 256 x 192),以帮助加快算法速度。
剩下要做的唯一一件事就是确定哪个组件是背景。在这种情况下,尝试通过使用特定阈值转换为黑/白来去除背景可能是有意义的。