python - 查找具有不同强度/亮度的相似图像

标签 python opencv computer-vision

假设我有如下图片:

enter image description here

enter image description here

比较两张图片之间的相似性我有什么选择?显然它们是相同的图像,只是亮度不同。我找不到任何合理的方法,目前我最好的选择是训练 cnn 或自动编码器并比较输出的特征向量,但这似乎有点矫枉过正。任何提示将不胜感激。

最佳答案

非常强大的工作解决方案(我测试过)是检查像素之间亮度符号变化的相关性。

即假设图像 A 和 B,循环大量像素:

IF (
  (brightness of pixel 1 from A IS LARGER than brightness of pixel 2 from A)
  AND
  (brightness of pixel 1 from B IS LARGER than brightness of pixel 2 from B)
) {
  COUNTER++;
}

反之亦然。 COUNTER 越高,图像越相似。

重要提示:我在(区域间)按比例缩小的图像上测试了该方法,而不是全尺寸图像,因为全尺寸图像可能包含一些压缩伪影。我的直觉表明它无论如何都适用于全尺寸图像,只是阈值不同。如果不是,按区域调整大小以保持良好的平均亮度值(类似于 OpenCV 中的 INTER_AREA),它会达到目的。

相关思路可见image comparison algorithm .

关于python - 查找具有不同强度/亮度的相似图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62704531/

相关文章:

opencv - 对于SIFT特征检测器,OpenCV关键点 “response”的值均为0

matlab - 如何将此图像处理从 Matlab 转换为 OpenCV?

c++ - 缩放和旋转模板匹配

python - 如何在 PyQT 中绘制节点和边?

列表的 Python 拆分

opencv - 使用 OpenCV 进行 Logo 检测

c++ - Opencv - 找不到头文件

python - 如何获取pylint的默认配置?

python - Python 中的 MySql 更新问题

image - 图像中的亮度没有调整