作者:贤闲咸大_552 | 来源:互联网 | 2023-08-29 11:22
我想基于两个重叠图像上标识的3个点来变换(平移,旋转和缩放)图像。基于3个点的像素坐标,我想创建一个大的tiff,将两者合并。对于下一个重叠,我想做同样的操作,直到获得合并所有图片的大tiff。有点像地理配准,但是没有使用坐标。问题是我没有matplotlib的经验。
到目前为止,我已经创建了一个脚本,该脚本可以并排显示每对重叠的图像,当我关闭窗口时,接下来的一对会打开等。我还设法从这些图像上的单击点获取像素坐标。但是现在我必须基于3点开始转换,而我只是不知道从哪里开始。对可用功能等有帮助吗?
编辑:这些图像是低分辨率的热图像,所以我认为自动转换不会起作用
您可以使用wand
,它是 ImageMagick 的Python绑定。因此,从这张图片开始:
我们可以像这样将红色顶点(138,80)扭曲到左上角,绿色(43,22)扭曲到左下角,将蓝色(49,125)扭曲到右下角(图像为152x152) ):
#!/usr/bin/env python3
from wand.image import Image
# Open image and distort,giving start x,y and end x,y for 3 points
with Image(filename='start.png') as img:
points = (138,80,# Red vertex
43,22,152,# Green vertex
49,125,152) # Blue vertex
img.distort('affine',points)
# Save result
img.save(filename='result.png')
您也可以从命令行在Terminal中执行相同的操作:
magick start.png -distort affine "138,80 0,0 43,22 0,152 49,125 152,152" result.png
关键字:图像处理,Python,扭曲,失真,仿射变换,变换,缩放,旋转,ImageMagick。