【问题标题】:Create mosaic from overlaping images in python从python中的重叠图像创建马赛克
【发布时间】:2020-11-06 06:46:45
【问题描述】:

我有无人机成像系统提供的图像集。单独的图像确实重叠了大约 70%。每张图像都是 tif 文件,我可以从中读取 GPS 位置(每张图像一个位置)。我想要对图像做的是将它们合并到同一个 tif 文件中。换句话说,我想从所有可用的图像中创建马赛克。

此外,我实际上有 5 个图像集。每个代表单独的光谱带。因此,我想创建一个由 5 个波段组成的马赛克。

单独图像集的马赛克在图片上更直观地显示: https://i.stack.imgur.com/41gZm.png

我想像这样的边距工作流程:

1.) 从第 i 个图像集中的重叠图像创建马赛克 A_i,其中每个光谱带 i=1..5

2.) 从所有 A_i 马赛克创建最终马赛克 B,其中每个光谱带 i=1..5

我想知道创建这种马赛克的最佳方法是什么。我听说过 dgal、rasterio、pygis 等,但我不知道哪个库最合适、功能强大且直观。最后,我希望一切都在 python 中实现。最好在库中,但在 python 中的命令行调用也可以完成这项工作。

我希望我已经足够清楚地解释了我的问题。欢迎任何帮助和建议。非常感谢您提供示例。

【问题讨论】:

    标签: python image-processing mosaic


    【解决方案1】:

    您可以尝试使用 PIL 连接图像。一个例子是:

    from PIL import Image
    
    im1 = Image.open(image_file1)
    im2 = Image.open(image_file2)
    
    newIm = Image.new('RGB', (im1.width + im2.width, im1.height))
    dst.paste(im1, (0, 0))
    dst.paste(im2, (im1.width, 0))
    

    如果图像重叠,您将不得不调整粘贴它们的值。 我希望这对您的问题有所帮助。

    【讨论】:

    • 嗯,谢谢您的回答,但恐怕这无济于事。我的图像是灰色的(一种颜色),我需要自动对齐,其中包括 GPS 数据。
    • 您不能通过将 GPS 数据转换为图像大小来对自动对齐进行编程吗?如果您知道图像两端之间的距离,只需将其乘以图像宽度即可。
    • 您好,是的,我想过,但我不知道该怎么做。我只知道图片的大小和图片中间的 GPS 位置。但我不知道图像在现实中代表的是哪个距离。你有我的解决方案如何计算。我认为这是可能的,但只是不知道该怎么做。
    • 如果您拥有的唯一信息是图片中间的 gps 坐标,那么自动化此过程的唯一可能性是所有图片都具有相同的缩放比例。如果你可以指望这一点,那么你必须手动调整两个图像的重叠(在过去的位置尝试不同的值),并将你使用的值与基于它们的坐标的每张图片的位置之间的距离进行比较。您可以使用基于 gps 坐标的距离计算器,在 google 中很容易找到。
    • 请注意,如果两个图像之间的重叠始终相同,则没有必要,只需手动找到它并将其应用于所有图像
    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 2020-07-07
    • 2012-08-28
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    相关资源
    最近更新 更多