python - 检测两张图片之间的变化

标签 python opencv image-processing

我是 python 和图像处理的初学者。我有以下 image .

我想检测这张图片和另一张可能存在的图片之间的变化

  • 从稍微不同的角度拍摄或对象被翻译
  • 有不同的光照条件

变化可能是

  • 物体部分颜色发生变化
  • 额外或遗漏的部分

经过各种搜索,我想到了用ORB检测匹配的部分,然后从图片中去除,然后用轮廓提取比较差异。

但我似乎找不到从两张图片中删除匹配部分的方法。

我愿意接受所有建议/解决问题的更好方法。


编辑: 抱歉,忘了说颜色变化可以是白色或粉色

最佳答案

看你的图片,似乎有三种主色。如果情况总是如此,首先想到的是应用具有三个聚类的颜色 K 均值算法,如解释的那样 here .

然后,每个簇的中心颜色会为您提供有关 pipe 颜色的信息,每个簇的大小(属于该簇的像素数)会告诉您是否有多余或缺失的部分。

enter image description here

关于python - 检测两张图片之间的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59933008/

相关文章:

image-processing - 图像处理 - "non maximum suppression"与 "local maximal"

Python - 使用 Popen 打开 gnome 编辑器

python - 在 Kubeflow 管道中共享 secret

python - 类型错误 : 'FirefoxWebElement' object is not iterable

python - 如何在Django中编辑和保存前端内容?

java - Android 中来自 OpenCV 图像的多个 View

opencv - 检测多个相同颜色的矩形并获取它们的坐标

image - 我的 yarn 朝向哪个方向?

c++ - push_back Mat in another Mat时访问违规读取位置

c# - (EMGU) 如何拆分和合并图像?