python将两张图片对齐

目录

需要对齐的照片如下:

源码:

结果:


需要对齐的照片如下:

源码:
import cv2
import numpy as np
from matplotlib import pyplot as plt

# 读取两张图片
imgA = cv2.imread('./out/out/3.png')
imgB = cv2.imread('./out/out/4.jpg')

# 创建SIFT对象
sift = cv2.SIFT_create()

# 在两张图片中检测特征点和计算描述子
kp1, des1 = sift.detectAndCompute(imgA, None)
kp2, des2 = sift.detectAndCompute(imgB, None)

# 创建FLANN匹配器
FLANN_INDEX_KDTREE = 1
index_params = dict(algorithm=FLANN_INDEX_KDTREE, trees=5)
search_params = dict(checks=50)
flann = cv2.FlannBasedMatcher(index_params, search_params)

# 使用k近邻算法进行特征匹配
matches = flann.knnMatch(des1, des2, k=2)

# 根据Lowe's ratio test选择最佳匹配
good_matches = []
for m, n in matches:
    if m.distance < 0.7 * n.distance:
        good_matches.append(m)

# 获取匹配的特征点的坐标
src_pts = np.float32([kp1[m.queryIdx].pt for m in good_matches]).reshape(-1, 1, 2)
dst_pts = np.float32([kp2[m.trainIdx].pt for m in good_matches]).reshape(-1, 1, 2)

# 计算透视变换矩阵
M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0)

# 应用透视变换将imgA对齐到imgB
aligned_img = cv2.warpPerspective(imgA, M, (imgB.shape[1], imgB.shape[0]))
cv2.imwrite('aligned_img.jpg', aligned_img)

plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1), plt.imshow(cv2.cvtColor(aligned_img, cv2.COLOR_BGR2RGB)), plt.title('Image A with Detected Changes')
plt.subplot(1, 2, 2), plt.imshow(cv2.cvtColor(imgB, cv2.COLOR_BGR2RGB)), plt.title('Original Image B')
plt.show()
结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/628347.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高德地图简单复制操作两分钟就能有近10元的收益日入500+无上限

嘿&#xff0c;伙计们&#xff0c;今天我要告诉你们一个赚钱的好方法&#xff0c;这个方法真的很简单&#xff0c;而且你可以在家里就能操作&#xff0c;不需要出门&#xff0c;不需要见人&#xff0c;只需要你会复制粘贴就行了&#xff0c;是不是很吸引人&#xff1f;好&#…

FullCalendar日历组件集成实战(5)

背景 有一些应用系统或应用功能&#xff0c;如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件&#xff0c;但功能比较简单&#xff0c;用来做数据展现勉强可用。但如果需要进行复杂的数据展示&#xff0c;以及互动操作如通过点击添加事件&#xff0…

摆脱手工录入烦恼,OCR技术大幅提高增值税发票处理效率

最近&#xff0c;我邂逅了一位得力助手——OCR技术&#xff0c;它犹如一位神通广大的魔法师&#xff0c;为增值税发票处理带来了翻天覆地的变革&#xff01; 曾几何时&#xff0c;处理增值税发票如同走进了一片迷雾重重的森林&#xff0c;每一步都小心翼翼&#xff0c;生怕出错…

AI绘画进阶工具ComfyUI 傻瓜整合包安装教程!模型共享,一键安装!

哈喽大家好&#xff0c;今天给大家分享一下AI绘画工具Stable Diffusion的另一种UI界面&#xff0c;常见的有&#xff1a; 窗口式界面的WebUI 节点式工作流的ComfyUI ComfyUI更加进阶一些&#xff0c;是一个节点式工作流的AI绘画界面&#xff0c;它高度可定制、自定义编辑Ai生…

数据结构_链表基本操作的实现_代码_例题

一、基本操作实现 1.按位序插入&#xff08;带头节点&#xff09; 2.按位序插入&#xff08;不带头节点&#xff09; 3.指定结点的后插操作 4.指定结点的前插操作 5.按位序删除&#xff08;带头节点&#xff09; 6.指定结点的删除 7.按位查找&#xff0c;返回第i个元素&…

Axure RP移动端交互元件库/交互原型模板

作品类型&#xff1a;元件库/原型模板 更新日期&#xff1a;2023-12-04 当前版本&#xff1a;V1.3 适用范围&#xff1a;App应用/小程序 Axure版本&#xff1a;Axure 9.0均可打开 文件大小&#xff1a;36.7M 历时两个月制作并整理了手机移动端常用的75种组件、90个常用界面模板…

Spring注解驱动开发

1、Spring注解驱动开发图解

英语单词量测试

网址&#xff1a;https://preply.com/en/learn/english/test-your-vocab 测试结果&#xff1a; 细节&#xff1a;英语母语者有20000-35000个单词的词汇量&#xff0c;8岁孩子的词汇量在8000个左右。而不是我们教育系统里说的&#xff0c;6000个单词足够用了。足够用&#xff0…

MSR810-LM快速配置通过LTE模块上网

正文共&#xff1a;1111 字 13 图&#xff0c;预估阅读时间&#xff1a;1 分钟 之前买了一个无线版本的MSR810-W&#xff08;淘了一台二手的H3C企业路由器&#xff0c;就用它来打开网络世界的大门&#xff09;&#xff0c;并整理了一份快速配置&#xff08;脚本案例来了&#x…

在pycharm添加pyqt5外部工具插件

一&#xff1a;查看环境所在位置以及安装pyqt5库 1、打开anaconda&#xff0c;输入以下命令&#xff0c;查看环境名&#xff0c;以及环境所在位置。 conda info --envs 从图中得知以下信息&#xff0c;下面根据自己实际情况&#xff0c;记住环境名和路径 ①环境名是&#xf…

redis报错500

之前自己举一反三把value也给序列化了&#xff1a; 然后报错了&#xff1a; 原因是这里传入的是Integer类型&#xff0c;序列化的话就变为string类型了

【Linux】-IP地址、主机名配置[5]

目录 一、IP和主机名 1、IP地址 2、特殊IP地址 3、主机名 4、在Linux中修改主机名 5、配置主机名映射 二、虚拟机配置固定IP 1、为什么需要固定IP 2、在VMware Workstation中配置固定ip 一、IP和主机名 1、IP地址 每一台联网的电脑都会有一个地址&#xff0c;用于和…

ALV 红绿灯

前言 在ABAP ALV中&#xff0c;LIGHTS_FIELDNAME参数是用于实现行级视觉指示或“灯光效果”的一个重要设置项&#xff0c;尤其适用于标记或突出显示列表中符合特定条件的行。这个参数通常是在定义ALV布局&#xff08;使用结构如LVC_S_LAYOUT或通过SALV类的相应方法&#xff09;…

IDEA 每次启动都显示选择项目页面

IDEA版本&#xff1a;2021.3.3 打开 Settings > Appearance & Behavior > System Settings 取消勾选 Reopen projects on startup 然后下次启动 IDEA 会显示选择项目页面

Flutter 3.22 发布,快来看看有什么更新吧?

Flutter 3.22 发布&#xff0c;快来看看有什么更新吧&#xff1f; 本次 Flutter 跟随 Google I/O 发布的版本是 3.22 &#xff0c;该版本主要还是带来了 Vulkan backend 和 Wasm Native 的落地&#xff0c;另外还有一个重点就是 Dart macros &#xff0c;但是它更多只是一个预…

2025年第十一届北京国际印刷技术展览会

2025年第十一届北京国际印刷技术展览会 展览时间&#xff1a;2025年5月15-19日 展览地点&#xff1a;北京中国国际展览中心&#xff08;顺义馆&#xff09; 主办单位&#xff1a;中国印刷及设备器材工业协会中国国际展览中心集团有限公司 承办单位&#xff1a;北京中印协华港国…

2023年国赛高教杯数学建模B题多波束测线问题解题全过程文档及程序

2023年国赛高教杯数学建模 B题 多波束测线问题 原题再现 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀速直线传播&#xff0c;在不同界面上产生反射&#xff0c;利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信号&#xff…

ITIL4之IT服务战略

战略和IT战略 战略 的概念最早源于军事领域&#xff0c;意在通过对战争全局的精心规划和指挥&#xff0c;利用有限资源高效达成政治和军事目标。这一思想逐渐扩展到商业、管理乃至信息技术领域&#xff0c;成为指导长远发展和资源配置的核心框架。 IT战略 是将军事战略的智慧…

内网安全-隧道搭建穿透上线FRPNPSSPPNgrokEW项目

旨在代理连接肉鸡后实现本地渗透肉鸡网络架构 Linux&#xff1a;Proxychains Windows&#xff1a;Sockscap Proxifier 穿透项目&#xff1a;Ngrok Frp Spp Nps EW(停更) 优点&#xff1a;穿透加密数据&#xff0c;中间平台&#xff0c;防追踪&#xff0c;解决网络问题 https://…

第二步 完善MBR

文章目录 前言一、什么是MBR&#xff1f;二、我们需要什么样的MBR&#xff1f;三、设计我们的MBR&#xff01;1、打印“1 MBR”2、加载次引导程序——loader 四、实践检验&#xff01; 查看系列文章点这里&#xff1a; 操作系统真象还原 前言 在上一篇文章 第一步 从启动BIOS开…