热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于3点的图像转换

我想基于两个重叠图像上标识的3个点来变换(平移,旋转和缩放)图像。基于3个

我想基于两个重叠图像上标识的3个点来变换(平移,旋转和缩放)图像。基于3个点的像素坐标,我想创建一个大的tiff,将两者合并。对于下一个重叠,我想做同样的操作,直到获得合并所有图片的大tiff。有点像地理配准,但是没有使用坐标。问题是我没有matplotlib的经验。
到目前为止,我已经创建了一个脚本,该脚本可以并排显示每对重叠的图像,当我关闭窗口时,接下来的一对会打开等。我还设法从这些图像上的单击点获取像素坐标。但是现在我必须基于3点开始转换,而我只是不知道从哪里开始。对可用功能等有帮助吗?

编辑:这些图像是低分辨率的热图像,所以我认为自动转换不会起作用


您可以使用wand,它是 ImageMagick 的Python绑定。因此,从这张图片开始:

enter image description here

我们可以像这样将红色顶点(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')

enter image description here


您也可以从命令行在Terminal中执行相同的操作:

magick start.png -distort affine "138,80 0,0 43,22 0,152 49,125 152,152" result.png

关键字:图像处理,Python,扭曲,失真,仿射变换,变换,缩放,旋转,ImageMagick。


推荐阅读
  • 本文详细介绍了如何使用Python的多进程技术来高效地分块读取超大文件,并将其输出为多个文件。通过这种方式,可以显著提高读取速度和处理效率。 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 本文详细介绍了如何使用 Python 进行主成分分析(PCA),包括数据导入、预处理、模型训练和结果可视化等步骤。通过具体的代码示例,帮助读者理解和应用 PCA 技术。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • Python多线程编程技巧与实战应用详解 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ... [详细]
  • PHP-Casbin v3.20.0 已经发布,这是一个使用 PHP 语言开发的轻量级开源访问控制框架,支持多种访问控制模型,包括 ACL、RBAC 和 ABAC。新版本在性能上有了显著的提升。 ... [详细]
  • 本文介绍了如何在Python中使用插值方法将不同分辨率的数据统一到相同的分辨率。 ... [详细]
  • Python多线程详解与示例
    本文介绍了Python中的多线程编程,包括僵尸进程和孤儿进程的概念,并提供了具体的代码示例。同时,详细解释了0号进程和1号进程在系统中的作用。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
author-avatar
贤闲咸大_552
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有