当前位置:首页 > 代码 > 正文

matlab仿射变换代码(matlab编程及仿真应用)

admin 发布:2022-12-19 21:17 173


本篇文章给大家谈谈matlab仿射变换代码,以及matlab编程及仿真应用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用仿射函数maketform、imtransform进行图像的旋转变换

其中maketform中的[0 -1 0; 1 0 0; 0 0 1]是使用到的仿射变换矩阵

然后利用变换矩阵[0 -1 0; 1 0 0; 0 0 1]对I只做一次仿射变换(即[0 -1 0; 1 0 0; 0 0 1]*i),得到了变换结果矩阵T

Maketform函数就是利用给定的参量建立变换结构,然后把该变换结构赋给结构体变换,根据得到的结构体变量T调用imtransform函数进行变换。

不懂可追问哦!~~

求一个matlab图形处理的程序加解析

一、实验题目

读取图像文件:q6g.jpg

生成新的车牌参考图像,该图像大小为120*330,其中间100*310大小的矩形设为白色,周围为黑色,显示该图像;

假设图像为仿射变换,手工选择的4个约束点,配准q6g.jpg中的车牌,并显示配准后的图像;

q6g.jpg中的车牌相对于车牌参考图像的仿射变换矩阵是?

二、实验要求

1. 生成新的车牌参考图像;

2. 用cpselect选择对应点;

3. 配准、显示图像;

4. 得出仿射变换矩阵。

三、实验目的

(1)练习使用Matlab;

(2)练习使用矩阵生成;

(3)练习使用cpselect选取配准点;

(4)理解变换结构,得出变换矩阵。

四、程序代码

close all;

clc;clear;

a=imread('q6g.jpg');

b=zeros(120,330); %开始生成参考图像

b(11:110,11:320)=255;

b=uint8(b); %生成参考图像

% b=imread('q0g.bmp'); %标准图像

imshow(a),figure,imshow(b);

[input_points, base_points]=cpselect(a,b,'wait',ture); %选择点 file-export—全选—ok

tform = cp2tform(input_points, base_points, 'affine'); %在此处设置断点

k = imtransform(a,tform); %修正图像

figure,imshow(k); %变换矩阵为

tform.tdata.T图片 要的话 先给 分 ,然后给图片

求MATLAB GUI 环境下 图像处理图像的平移,任意角度的旋转,缩放和翻转,仿射变换等的源代码

该gui函数基本上包括图像处理里面的最基本处理,相当于一个小型photoshop。

比如读取文件,

几何变换中的垂直镜像,平移,旋转,缩放;

正交变换的DFT,FFT,DCT,DST,DHT,DWashT;

灰度处理中的反色,直方图均衡,全局线性变换,分段线性变换,指数非线性变换,对数非线性变换;

图像增强里面的加噪声,平滑,锐化,伪彩色增强;

图像分割里面的灰度阈值法,Robert,Laplace,sobel,prewitt,canny算子边缘检测法;

图像恢复里面的直接逆滤波,维纳滤波;图像编码里面的霍夫曼编码,行程编码-

matlab小问题。。。

clear all;

clc;

I1=imread('D:\ebook\ref.bmp');

I2=imread('D:\ebook\swt.bmp');

unregistered =I2;%%未配准图像

rect=I1;%%参考图像

cpselect(unregistered(:,:,1),rect);%%%选择点对,选完后记得保存

uiwait(msgbox('Click OK after closing the CPSELECT window.','Waiting...'))

input_points_corr= cpcorr(input_points,base_points,unregistered,rect);

tform = cp2tform(input_points_corr,base_points,'linear conformal');%%仿射变换

registered = imtransform(unregistered,tform,'XData',[1 300], 'YData',[1 300]);%%对图像进行重采样

H.Position=[232 258 600 402];

figure(H)

subplot(2,2,1)

imagesc(rect)

title('Original image 1')

subplot(2,2,3)

imagesc(unregistered)

title('Unmatched image 2')

subplot(2,2,2)

imagesc(rect)

title('Original image 1')

subplot(2,2,4)

imagesc(registered)

title('Matched image 2')

colormap (gray)

步骤:

1 运行程序,在input里点一个点,在base里在大概相等的位置点一个点,这个两个点构成点对;

2 选取三对以上的点(仿射变换,至少需要三对点);

3 选完后,点file -save points to workspace ,然后再点击ok按钮;

这函数不是很好,你选取的点对位置差不多的话,配准较好,差的远的话,配准会失效;

如何根据角点做两幅图像之间的仿射变换

上面这个程序得在matlab R2013a上才能运行成功,之前的版本貌似还没有detectFASTFeatures这个函数。如果你没有安装matlab R2013a的话,就换个算法吧,比如说换成detectSURFFeature或者detectHarrisFeatures函数

关于matlab仿射变换代码和matlab编程及仿真应用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/24535.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载