图像变换——等距变换、相似变换、仿射变换、投影变换

news2024/12/23 17:09:57
%%图像变换
% I = imread('cameraman.tif');
I = imread('F:\stitching\imagess\or\baiyun2.jpg');
figure; imshow(I); title('原始图像');
[w,h]=size(I);
theta=pi/4;%旋转角
t=[200,80];%平移tx,ty
s=0.3;%缩放尺度
%% 等距变换=平移变换+旋转变换
H_e=projective2d([cos(theta) sin(theta) t(1);
              -sin(theta)  cos(theta) t(2);
                  0           0       1]');
I_e=imwarp(I,H_e);
figure; imshow(I_e); title('等距变换');
%% 相似变换=等距变换+均匀缩放
H_s=projective2d([s*cos(theta) -s*sin(theta) t(1);
                  s*sin(theta)  s*cos(theta) t(2);
                     0           0       1]');
I_s=imwarp(I,H_s);
figure; imshow(I_s); title('相似变换');
%% 仿射变换=平移变换+非均匀变换
H_a=projective2d([1 0.2 t(1);
                 0 1 t(2);
                 0 0  1]');
I_a=imwarp(I,H_a);
figure; imshow(I_a); title('仿射变换');
%% 投影变换
H_P=projective2d([0.765,-0.122,-0.0002;
                 -0.174,0.916,9.050e-05;
                  105.018,123.780,1]);
I_P=imwarp(I,H_P);
figure; imshow(I_P); title('投影变换');

% %% 黑色背景变白色
% linear_out = I_a;
% redChannel = linear_out(:, :, 1);
% greenChannel = linear_out(:, :, 2);
% blueChannel = linear_out(:, :, 3);
% thresholdValue = 0;
% mask = redChannel == thresholdValue & greenChannel == thresholdValue & blueChannel == thresholdValue;
% maskedRed = redChannel;
% maskedGreen = greenChannel;
% maskedBlue = blueChannel;
% % Do the masking - make white where it was black.
% maskedRed(mask) = 255;
% maskedGreen(mask) = 255;
% maskedBlue(mask) = 255;
% mosaic = cat(3, maskedRed, maskedGreen, maskedBlue);
% figure; imshow(mosaic);

 实验结果:

等距变换:

相似变换

仿射变换

投影变换

参考文章图像变换——等距变换,相似变换,仿射变换,投影变换_投影扭曲 相似扭曲-CSDN博客

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

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

相关文章

体育风尚杂志体育风尚杂志社体育风尚编辑部2024年第8期目录

体讯 体育产业“破圈” 3-7 成都大运会获2023年度最佳体育赛事媒体设施奖 8-10 斯巴达勇士赛 2024斯巴达勇士赛深圳站漫威主题赛在深圳光明欢乐田园揭幕 11-15 篮球 CBA季后赛 深圳马可波罗挺进季后赛八强 16-24 游泳 周六福2024年全国游泳冠军赛4月深圳激…

集成电路与电路基础之-二极管

二极管是什么 二极管,又称肖特基二极管或晶体二极管,是一种最基本的半导体器件之一。它由半导体材料(如硅、硒、锗等)制成,其内部结构是一个PN结,即由一个P型半导体区和一个N型半导体区组成。这种结构赋予…

【freeDiameter】服务端和客户端的连接流程

连接流程详解 进程启动时,先使用main_cmdline解析命令行参数,比如使用-c就会使用指定路径的配置文件,使用-d就会启用后台进程。 之后使用fd_core_initialize初始化核心库。具体会先使用fd_conf_init初始化配置,比如设置各项的默…

Android活动(activity)与服务(service)进行通信

文章目录 Android活动(activity)与服务(service)进行通信活动与服务进行通信服务的生命周期 Android活动(activity)与服务(service)进行通信 活动与服务进行通信 上一小节中我们学…

国产3A大作《黑神话:悟空》,各类MOD+修改器+皮肤等资源大合集(附安装教程)

《黑色神话:悟空》的引擎让你可以修改角色的伤害、防御和各种物资数量,大大降低了游戏的难度,让动作游戏的玩家更容易享受到体验。但是,请注意,使用作弊引擎会大大降低游戏体验,因此请明智地使用它&#xf…

各种探针卡介绍

探针卡(Probe Card)是一种在半导体测试过程中至关重要的设备,主要用于晶圆测试阶段,通过探针与芯片上的焊垫或凸块直接接触,完成测试信号的传输和反馈。探针卡的种类多样,各有其特点和应用场景。以下是几种常见的探针卡类型详细介绍: 1. 刀片探针卡(Blade Probe Card)…

<Rust>egui学习之小部件(五):如何在窗口中添加图像部件?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析,主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统:windows 平台:visual studio code 语言:rust 库:egui、eframe 概述 本文是本专栏的第五篇博…

【Qt】垂直布局管理器QVBoxLayout

垂直布局管理器QVBoxLayout 在之前学习Qt的过程中,将控件放在界面上,都是依靠“手动”的方式来布局的,但是手动调整的方式是不科学的。 手动布局的方式非常复杂,而且不精确无法对窗口大小进行自适应 因此Qt引入布局管理器来解决…

2-79 基于matlab的卷积稀疏的形态成分分析的医学图像融合

基于matlab的卷积稀疏的形态成分分析的医学图像融合,基于卷积稀疏性的形态分量分析 (CS-MCA) 的稀疏表示 (SR) 模型,用于像素级医学图像融合。通过 CS-MCA 模型使用预先学习的字典获得其卡通和纹理组件的 CSR。然后,合并所有源图像的稀疏系数…

13-springcloud gateway集成nacos实现负载均衡

网关作为访问系统的入口,负载均衡是必选项而不是可选项,本文介绍gateway与nacos集成,实现负载均衡的过程。关于springcloud gateway的基本用法,同学可以看看上篇文章: 12-使用gateway作为网关。 0、环境 jdk:1.8spri…

【GIT】idea中实用的git操作,撤回commit,撤回push、暂存区使用

IDEA中最常见的UI操作:【GIT】Idea中的git命令使用-全网最新详细(包括现象含义) 文章目录 问题一: idea撤回仅commit错误的代码(仅本地仓库,因为还没推送到远程)问题二: idea撤回Com…

【提示学习论文】CoCoLe:Conceptual Codebook Learning for Vision-Language Models

Conceptual Codebook Learning for Vision-Language Models(ECCV 2024) CPL的改进暂无代码 CPL 详见CPL论文 CoCoLe a:手工概念缓存的建立过程b:制作提示的过程,将图像输入Ev,得到image features v 作…

【C++ Primer Plus习题】6.4

问题: 解答: #include <iostream> using namespace std;const int strsize 40; const int usersize 40;typedef struct _Bop {char fullname[strsize];char title[strsize];char bopname[strsize];int preference; }Bop;Bop bop_user[usersize] {{"Wimp Macho&q…

SpringBoot多环境日志配置

SpringBoot 默认使用 LogBack 日志系统 默认情况下&#xff0c;SpringBoot项目的日志只会在控制台输入。 如果想查询历史日志则无法找到&#xff0c;我们需要一个日志系统来统一管理日志。 一般正式项目会有单独日志系统&#xff0c;将日志操作存入数据库。 第一种方式是 在 ap…

如何理解select(1)、select(*)、select(column)背后的差异?

先说结论 select&#xff08;1&#xff09;、select&#xff08;*&#xff09;都是基于结果集进行的行数统计&#xff0c;统计到NULL行select&#xff08;column&#xff09;则受到索引设置的影响&#xff0c;默认会排除掉NULL行 在数据库查询中&#xff0c;SELECT语句用于从数…

第 7 章 B+树索引的使用

7.1 索引的代价 空间上的代价 每建立一个索引都要为它建立一棵B树&#xff0c;B树的每一个节点都是一个数据页&#xff0c;一个页默认占用16KB的空间。 时间上的代价 每次对表中的数据进行增、删、改操作时&#xff0c;都需要去修改各个B树索引。 一个表上的索引越多&#x…

从零上手CV竞赛Task2 # Datawhale AI夏令营

文章目录 平台参赛平台云平台 Task 1 从零上手CV竞赛下载baseline相关文件一键运行baseline&#xff01;&#xff08;大约需要25分钟&#xff09;赛题解析数据集提交结果违法标准注意事项 下载生成的文件结果如图最后要记得关机 不然一直消耗算力 Task 2 建模方案解读与进阶物体…

光性能 -- OMA(光调制幅度)

基本概念 OMA&#xff08;Optical Modulation Amplitude&#xff09;&#xff1a;光调制幅度&#xff0c;是光信号测试中的一项指标。是指光模块接收到的信号”1”的光功率和信号“0”的光功率的差值。即&#xff1a; Pavg&#xff08;average optical power&#xff09;&#…

WxPython可视化编辑器

作者&#xff1a;陈炳强 WxPython是python的一个用来写桌面程序的模块,目前只写了小部分功能跟组件, 用Python写中文&#xff0c;非常方便&#xff01; 下载地址&#xff1a;https://pan.quark.cn/s/ba19b2472246

LabVIEW如何适应航天系统的要求

随着航天任务的复杂性和精确性要求不断提高&#xff0c;软件系统在其中扮演的角色变得愈发关键。LabVIEW凭借其强大的实时数据处理能力、高可靠性、以及灵活的系统集成和仿真工具&#xff0c;已逐渐成为满足航天系统需求的重要开发平台。通过全面适应航天工程的严格标准&#x…