2

这是我想做的事情:

我有一张稻叶的图像。我有另一张稻叶的图像,叶子上有棕色斑点。我想要做的是使用opencv分离两个图像不常见的颜色像素。(斑点的颜色可以变化)

我尝试使用直方图交集来做到这一点。但只能设法找到两个图像之间共有的像素数。

有没有办法使用opencv做到这一点?请善待我以帮助我。

4

1 回答 1

0

如果两张图片完全匹配

  • 如果它们匹配使用 RhinoDevel方法:
  • 所以循环遍历第一张图像的所有像素
  • 并将每个像素与第二张图像中的相应像素进行比较
  • 如果差异高于阈值
  • 您发现不匹配 Pixel 并执行您需要执行的操作
  • 就像将像素添加到某些输出贴图或重新着色(棕色)像素以从第一张图像或其他任何颜色中着色

如果 2 个图像不匹配

  • 所以你刚刚得到一些参考叶子图像,处理后的图像可以有任何位置/旋转倾斜
  • 为每个图像创建颜色列表
  • 按颜色升序排序
  • 交叉比较展位清单
  • 如果任何颜色在 list2 中但不在 list1 中
  • 然后在/从image2中重新着色/复制包含这种颜色的所有像素
  • 这种方法较慢O(xs*ys*n)
  • xs,ys是图像 2 的分辨率n,是非常见颜色的数量

[笔记]

  • RGB 通常很好,但您可能会在 HSV 颜色空间上获得更好的结果
  • 在 HSV 中,您可以比较所有 3 个参数,或者只比较其中几个参数,例如忽略V value...
于 2015-07-06T06:57:08.053 回答