【问题标题】:Calculating Difference In Rotation Between Two Images of Different Quality计算两个不同质量图像之间的旋转差异
【发布时间】:2020-11-06 12:29:46
【问题描述】:

目标是通过引用高分辨率图像的存储库来替换所有低分辨率图像。

我能够替换图像,但我注意到图像已旋转,并且我还需要在我添加的图像中反映更改。此外,没有改变图像旋转的模式。手动旋转图像是正确的,几乎 50% 的图像没有记录。

我无法找到计算旋转的方法,因为图像的质量不同(WIDTHxHEIGHT 相同,但文件大小不同)

以下是需要解决的情况之一:

原始低质量图像

添加了高质量图片

【问题讨论】:

  • 为什么不把所有东西都转换成低质量再做比较?
  • @phoenixstudio 有趣的想法,我可以让两个图像相同,然后尝试旋转直到我达到两个相同图像的情况。但这里的问题是如何降低图像分辨率。我唯一真正的价值是图像文件的大小。
  • 您可以使用任何技术(最坏情况下的“下采样”),并尝试逐像素比较它们(最坏情况 A - B),例如,您可以创建 50px* 50px,它也应该工作,因为即使它们只是 50x50 的图标,你也能分辨出来

标签: opencv image-processing image-rotation


【解决方案1】:

就像 phoenixstudio 所说,首先将图像下采样到相同大小。使用 OpenCV,您可以使用 resize function 来做到这一点。

然后比较图像的旋转。请注意,即使图像来自相同的高分辨率源,它们也不太可能在正确旋转时位相同。不同的下采样方法或有损压缩造成的失真可能会在像素值上产生微小的差异。因此,请与mean((A - B)^2) < tol 之类的容差进行比较。

另一个想法:如果这些是 JPEG 图像,EXIF 元数据中可能有一个旋转字段,这可能会有所帮助:请参阅 https://jdhao.github.io/2019/07/31/image_rotation_exif_info/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多