基于matlab使用自动要素匹配查找图像旋转和缩放(附源码)

一、前言

此示例演示如何自动确定一对图像之间的几何变换。当一个图像因旋转和缩放而相对于另一个图像失真时,请使用 和 查找旋转角度和比例因子。然后,您可以转换扭曲的图像以恢复原始图像。

二、步骤 1:读取图像

将映像引入工作区。

三、第 2 步:调整图像大小和旋转图像

您可以通过改变输入图像的比例和旋转来进行实验。但是,请注意,在特征检测器无法找到足够的特征之前,您可以改变比例的数量是有限制的。

四、步骤 3:查找图像之间的匹配特征

检测两个图像中的特征。提取特征描述符。使用描述符匹配要素。检索每个图像的相应点的位置。显示推定的积分匹配。

五、步骤 4:估计转换

使用统计稳健的 M 估计器 SAmple 共识 (MSAC) 算法查找与匹配点对对应的转换,该算法是 RANSAC 算法的变体。它在计算转换矩阵时删除异常值。由于 MSAC 算法采用的随机采样,您可能会看到不同的转换计算结果。

显示转换计算中使用的匹配点对。

六、第 5 步:求解比例和角度

使用几何变换 tform 来恢复比例和角度。由于我们计算了从扭曲到原始图像的转换,因此我们需要计算其逆数以恢复失真。

计算逆变换矩阵。恢复的值应与在步骤 2:调整大小和旋转图像中选择的比例和角度值匹配。请注意,缩放和旋转角度在对象的“缩放”和“旋转角度”属性中也可用。

七、步骤6:恢复原始映像

通过转换扭曲的图像来恢复原始图像。与蒙太奇中并排看它们相比。

由于失真和恢复过程,(右)图像质量与(左)图像不匹配。特别是,图像缩小会导致信息丢失。边缘周围的伪影是由于变换的准确性有限造成的。如果要在步骤 3:查找图像之间的匹配要素中检测到更多点,则变换将更加准确。例如,我们可以使用角落检测器detectFASTFeatures来补充SURF特征检测器,该检测器可以发现斑点。图像内容和图像大小也会影响检测到的要素的数量。

八、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

程序下载:基于matlab使用自动要素匹配查找图像旋转和缩放-Matlab文档类资源-CSDN文库

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Electron详解(二):基本使用与项目打包

文章目录 一、electron的基本使用创建一个 electron 项目创建应用窗口和页面 二、打包应用程序(window平台)使用 Electron Forge 打包打包报错解决方法 三、打包应用程序(Linux平台)electron builder打包 一、electron的基本使用 …

Baltamatica 北太天元 —— 基于模拟退火算法的旅行商问题

文章目录 北太天元(Baltamatica)简介Baltamatica 复现基于Matlab的旅行商问题问题描述模拟退火算法Metropolis准则算法流程图: Demo1:只考虑累计距离,通过模拟退火算法求解最短路径matlab代码:Baltam代码&a…

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

win如何使用OpenSSL生成自签名证书,使 http 升级为 https 前言 HTTPS其实就是HTTP over SSL,也就是让HTTP连接建立在SSL安全连接之上。 创建自签名证书需要安装openssl。参考本文安装OpenSSL部分。 使用OpenSSL生成自签名证书的步骤:参考…

给LLM装上知识:从LangChain+LLM的本地知识库问答到LLM与知识图谱的结合

第一部分 基于LangChain ChatGLM-6B的本地知识库问答的应用实现 1.1 什么是LangChain:连接本地知识库与LLM的桥梁 作为一个 LLM 应用框架,LangChain 支持调用多种不同模型,提供相对统一、便捷的操作接口,让模型即插即用&#x…

从零实现深度学习框架——Seq2Seq机器翻译实战

引言 本着“凡我不能创造的,我就不能理解”的思想,本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。 💡系列文章完整目录: 👉点此👈 要深入理解…

Android Studio实现内容丰富的安卓自行车租赁平台

如需源码可以添加q-------3290510686,也有演示视频演示具体功能,源码不免费,尊重创作,尊重劳动。 项目编号105 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看公告 3.查…

使用itextpdf填充表单域并生成pdf

文章目录 前言一、准备工作1.1 安装软件1.2 准备pdf1.3 设置表单域 二、创建项目三、编写代码3.1 编写工具类3.2 测试 四、测试结果 前言 最近手上有个任务,就是需要做一个pdf导出的功能。 可选择的技术点比较多,我这边综合考虑之后,使用的…

【单例模式】—— 每天一点小知识

💧 单例模式 \color{#FF1493}{单例模式} 单例模式💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 《数据结构与算法》专栏的文章图文并茂🦕生动形…

基于卷积变分自动编码器的3D数据处理与重建【CVAE】

在这个项目中,我们将学习如何使用卷积变分自动编码器 (CVAE) 来处理和重建 3D 湍流数据。 我们使用计算流体动力学 (CFD) 方法生成 3D 湍流立方体,每个 3D 立方体沿着三个速度分量携带物理信息(与图像数据类似,被视为单独的通道&…

Http host 标头攻击

一、什么是http host 标头攻击 HTTP Host 标头攻击是一种网络安全攻击技术,利用了 HTTP 协议中的 Host 标头字段的漏洞。Host 标头字段用于指定客户端请求的目标主机名或域名。 攻击者可以通过构造恶意的 HTTP 请求,伪造或篡改 Host 标头字段的值&#x…

Linux系统安全:安全技术和防火墙

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、Linux系统安全:安全技术和防火墙1.安全技术:2.入侵防御系统 (Intrusion Prevention System) :3.防火墙 ( Erewall ) :4.防水墙&#xff…

GPT模型训练实践(3)-参数训练和代码实践

一、参数训练 GPT模型参数的训练过程宏观上有两个大环节,先从上往下进行推理,再从下往上进行训练,具体过程为: 1、模型初始化参数随机取得; 2、计算模型输出与真实数据的差距(损失值和梯度) …