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

news2025/4/15 2:35:27

一、前言

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

二、步骤 1:读取图像

将映像引入工作区。

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

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

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

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

五、步骤 4:估计转换

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

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

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

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

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

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

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

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

八、程序

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Bean的基础配置

问题1&#xff1a;在<bean>标签上如何配置别名&#xff1f; 问题2&#xff1a;Bean的默认作用范围是什么&#xff1f;如何修改&#xff1f; 1. Bean基础配置【重点】 类型描述名称bean类型标签所属beans标签功能定义Spring核心容器管理的对象格式 <beans> …

xcall脚本和xsync脚本 linux

一、xcall脚本 在cd /usr/local/bin/路径下创建xcall vim /usr/local/bin/xcall #!/bin/bash for host in hadoop100 hadoop101 hadoop102 doecho $host ssh $host jps done …

网络攻击与防御措施及防御产品

网络攻击与防御措施及产品 思维导图模板_ProcessOn思维导图、流程图分析了攻击类型、并列出了对不同的攻击方法的防御措施&#xff0c;和可以使用的安全设备。https://www.processon.com/view/649ba05dabde99162f8aecba

Java字节码分析快速入门/字节码执行分析(一)

目录 什么是字节码&#xff1f; 为什么要了解字节码&#xff1f; 如何查看字节码&#xff1f; 字节码包括哪些内容&#xff1f; 总结 hello读者盆友们&#xff0c;在上一篇文章[Java基础]面向对象-内存解析_小王师傅66的博客-CSDN博客最后&#xff0c;我们通过查看字节码&…

2022版本的unity里面的snap setting在哪

1.2022版本的unity 在scene 里面图中画圈的位置。 2.点击后效果如图。

数据库实验—存储过程

创建下列存储过程&#xff1a; 查询某位学生指定课程的成绩和学分&#xff08;修正&#xff1a;若该学生的课程成绩小于60分&#xff0c;则学分要显示为0分&#xff09; 提示&#xff1a;使用CASE…WHEN 例如&#xff1a;分别查询’张建国’和’李平方’选修的’数据库系统原理…

chatgpt赋能python:Python退出venv指南:安全退出虚拟环境

Python退出venv指南&#xff1a;安全退出虚拟环境 作为一名有10年Python编程经验的工程师&#xff0c;我很清楚地明白通过venv管理Python虚拟环境的好处。虚拟环境为每个项目提供了一个独立的Python运行时环境&#xff0c;这可以避免项目之间的依赖冲突&#xff0c;并且可以轻…

canvas图形等距、间距测量

首先定义画线&#xff08;实线、虚线&#xff09;、画面&#xff08;矩形块&#xff09;、值&#xff08;距离&#xff09;等渲染数据结构&#xff08;渲染数据只提供坐标信息和一些基本样式属性&#xff0c;不需要依赖渲染是dom&#xff0c;还是canvas或webgl&#xff09;侦测…

C语言:调整数组使奇数全部都位于偶数前面

题目&#xff1a; 输入一个整数数组&#xff0c;实现一个函数&#xff0c; 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分&#xff0c; 所有偶数位于数组的后半部分。 &#xff08;奇数在数组前面&#xff0c;偶数在数组后面&#xff09; 思路&#xff1a;…

【shell】expect命令详解:用expect实现自动化交互式操作

文章目录 一. 运用场景二. 语法说明三. 例子1. scp文件传输自动化2. ssh远程登录3. 切到root用户4. 创建ssh key5. ssh到一个节点创建用户 一. 运用场景 expect主要应用于自动化交互式操作的场景&#xff0c;借助Expect处理交互的命令&#xff0c;可以将交互过程如&#xff1a…

FPGA的软核、硬核、固核

“核” 现在的FPGA设计&#xff0c;规模巨大而且功能复杂&#xff0c;因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是&#xff1a;对于较为通用的部分可以重用现有的功能模块&#xff0c;而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在…

Golang:cannot find main module; see ‘go help modules‘解决

出现这个的原因就是之前在Golang语言介绍、环境搭建以及编译工具&#xff08; CDN 加速代理&#xff09;https://mp.csdn.net/mp_blog/creation/editor/131431492 这个部分配置CDN加速代理的时候&#xff0c;开启了GO111MODULEon后&#xff1b; go会忽略GOPATH和vendor文件夹&…

问题杂谈(三十五)Linux中文乱码问题

前言&#xff1a; 如下&#xff0c;系统的中文描述是乱码 步骤&#xff1a; 输入locale&#xff0c;如有zh cn 表示已经安装了中文语言 如果没有&#xff0c;通过yum groupinstall chinese-support下载 临时更换语言&#xff1a;输入LANG"en_US.UTF-8"系统设置&a…

【python docker error】最近出现docker拉取python官方镜像出现运行程序容器无法跑起来的现象

最近出现docker拉取python官方镜像出现运行程序容器无法跑起来的现象 官方在最近也就是2023年6月初将docker的python镜像由debian的buster版本切换到bookworm版本&#xff0c;导致一众的用户发现使用官方python的基础镜像的容器启动报错&#xff0c;我也是受害者之一。解决办法…

机器视觉初步10:目标跟踪

目标跟踪是计算机视觉中的一个重要领域&#xff0c;主要目的是在视频序列中跟踪一个或多个目标对象。常见的目标跟踪方法分为三类&#xff1a;非机器学习方法、机器学习方法和深度学习方法1。 文章目录 1.非机器学习方法a) 光流法&#xff08;Optical Flow&#xff09;b) Haar…

【瑞萨RA_FSP】RTC——实时时钟

文章目录 一、RTC简介1. RTC 特性 二、RTC的结构框图1. RTC引脚2. 时钟分频3. 日历计数器/二进制计数器4. 闹钟功能 三、实验&#xff1a;用RTC提供日历时间1. 硬件设计2. 文件结构3. FSP配置4. 宏定义5. 初始化RTC6. RTC中断回调函数7. hal_entry函数 一、RTC简介 RA6M5 的RT…

虚幻引擎(UE5)-大世界分区WorldPartition教程(一)

文章目录 WC与WP的区别一、如何开启WP1.默认创建WP2.手动创建WP3.转换创建WP 二、设置World Partition参数三、启动流送总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 WC与WP的区别 WorldCompostion&#xff08;WC&#xff09; 是UE4中制作大世界…

【java实战】emoj表情导致mySQL存储错误,完美解决

MySQL表的编码格式为utf-8,现在表内数据量巨大&#xff0c;已不能新建表更改表的编码格式。 采用手动编码将有问题的数据转化为utf8进行存储 工具类 import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.util…

大数据Doris(五十):Export导出原理

文章目录 Export导出原理 一、原理 二、查询计划拆分 三、查询计划执行 Export导出原理 Doris Export、Select Into Outfile、MySQL dump三种方式数据导出。用户可以根据自己的需求导出数据。此外数据还可以以文件形式通过Borker备份到远端存储系统中&#xff0c;之后可以…

Gitlab升级报错一:rails_migration[gitlab-rails] (gitlab::database_migrations line 51)

Gitlab-ce从V14.0.12升级到V14.3.6或V14.10.5时报错&#xff1a;如下图&#xff1a; 解决办法&#xff1a; 先停掉gitlab: gitlab-ctl stop 单独启动数据库&#xff0c;如果不单独启动数据库&#xff0c;就会报以上错误 sudo gitlab-ctl start postgresql 解决办法&#x…