【问题标题】:Python Align two images according to specified co-ordinatesPython根据指定坐标对齐两个图像
【发布时间】:2019-12-19 14:28:39
【问题描述】:

我有两个来自两个不同成像硬件的图像。我需要将它们相互对齐,以创建两张图片的合成。第一张图片作为背景,因为它具有更好的分辨率,第二张图片需要是低不透明度的叠加,以便第二张图片上的彩色点可见。为此,我在 image1 上指定至少 3 个点,在 image2 上指定至少 3 个点。

图片1:

图片2:

所需的输出必须如下所示:

【问题讨论】:

    标签: python opencv image-processing python-imaging-library


    【解决方案1】:

    这是一个校准问题,您应该使用 opencv 中的findHomography 命令。

    需要两组点,第一组是第二张图像(彩色)中红点的像素坐标,第二组必须是第一张图像中红点的坐标。

    此命令的输出是 3*3 矩阵,这是您需要的地图。将此矩阵和第二个图像提供给 opencv 的 warpPerspective 命令,这将为您提供可以与原始图像叠加的目标图像。

    当然findHomography 需要 3 个以上的点才能获得好的结果(8 分是好的),但它仍然适用于 3 个点。

    【讨论】:

    • 我已经尝试过使用 findHomography 。由于彩色图像的质量非常差,它会产生很多误报并输出无意义的图像。你认为affineTransformation 有用吗?
    • 您可以使用 getAffineTransform 代替 findHomography 但可能也会给您带来不好的结果,因为您的映射的性质不是仿射的。此外,您的映射质量完全独立于图像质量!您只需要在两个图像之间添加一些真实点(超过 3 个)。
    • 我会尝试并告诉你,谢谢你的努力!
    • 遗憾的是它没有按预期工作,这些是我修改后的输入图像和最后imgur.com/a/9OgAKkA的匹配结果,我的对齐代码是:pastebin.com/Sbdm7KWE
    • @JackSparrow 您还可以使用 sift 或 surf 等特征点提取方法在两个图像之间找到匹配点,然后在匹配点上应用 findhomography。当然,您需要在特征提取之前增强第二张图像。
    猜你喜欢
    • 2020-05-27
    • 2021-12-07
    • 2020-09-23
    • 1970-01-01
    • 2014-04-28
    • 2022-07-24
    • 1970-01-01
    • 2014-02-18
    • 2017-10-25
    相关资源
    最近更新 更多