作者:鱼红1993 | 来源:互联网 | 2023-10-10 11:19
我正在编写一个Python程序,该程序显示2个相邻的热(低分辨率)无人机射击。然后,用户在两张图片上选择3个点,之后应转换第二张图片并将其与第一张图片合并。下一步,程序应显示合并的图片以及旁边航班中的第三张图片等。
此刻,我正在寻找进行图像转换和合并的方法。
我正在考虑将图像读取为数组(列表(=行)的列表),使用转换公式手动计算每个像素的新位置(目前我已经使用OpenCV计算转换矩阵),一个新的空列表,并将像素值粘贴到新的列表中的相应位置。之后,我想用0填充所有空白的“单元格”。
要合并它们,我将再次创建一个新的列表列表并遍历这两个图像,并获取每个单元格的最大值或平均值,并用零填充剩余的空白“单元格”。如我所提到的,我将在窗口中显示以下结果的合并图像。
在计算像素值的新坐标之前,我仍然不知道如何预测列表的大小。另外,这种方法似乎冗长且效率低下,因此我想知道是否存在使用Wand或OpenCV(或任何其他库)进行此操作的简便方法。
我手动完成了所有操作,并且可以正常工作,我仍然遇到的一个问题是穿过转换图像的对角NoData线。我想这是坐标舍入的结果,因为我不能在列表中使用浮点数(这是转换公式的结果)作为索引。 (在本示例中,并非非常仔细地选择了这三组点,但您会明白这一点。)
编辑:我通过在中心像素和与中心像素接壤的其他8个像素中填充计算值来解决对角线。它使图像变得模糊,但这是我唯一的解决方案。