失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【图像处理】MATLAB:几何变换与图像配准

【图像处理】MATLAB:几何变换与图像配准

时间:2019-10-17 11:36:27

相关推荐

【图像处理】MATLAB:几何变换与图像配准

仿射变换

几何变换会对图像的像素之间的空间关系加以修改,被称为“橡皮布变换”,常常用来实现图像配准。图像配准指的是取两张相同场景的图像并加以对准,从而可以将它们合并,以便目测或者定量比较。

tform 结构和 makeform 函数

tformfwd计算正变换,tforminv计算逆变换

代码示例

% 该代码用到了vistformfwd函数% 定义为function vistformfwd(tform,wdata,zdata,N),N默认值为10。T1 = [3 0 0;0 2 0;0 0 1]; % 水平缩放因子为3,垂直缩放因子为2tform1 = maketform('affine',T1);figure;vistformfwd(tform1,[0 100],[0 100]); % 建立点的栅格结构,使用tformfwd进行变换,显示变换前后图像T2 = [1 0 0;.2 1 0;0 0 1];tform2 = maketform('affine',T2); % 水平剪切figure;vistformfwd(tform2,[0 100],[0 100]);Tscale = [1.5 0 0;0 2 0;0 0 1]; % 缩放Trotation = [cos(pi/4) sin(pi/4) 0;-sin(pi/4) cos(pi/4) 0;0 0 1]; % 旋转Tshear = [1 0 0;.2 1 0;0 0 1]; % 剪切T3 = Tscale * Trotation * Tshear;tform3 = maketform('affine',T3);figure;vistformfwd(tform3,[0 100],[0 100]);

运行结果

图像空间变换

代码示例

% 线性等角变换f = checkerboard(50); % 产生一个一面为8个正方形的测试板,每个的边长均为50s = 0.8;% 缩放theta = pi/6; % 旋转角度T = [s*cos(theta) s*sin(theta) 0;-s*sin(theta) s*cos(theta) 0;0 0 1];tform = maketform('affine',T);g1 = imtransform(f,tform); % 双线性插值g2 = imtransform(f,tform,'nearest'); % 最近邻内插,比双线性速度快但效果差g3 = imtransform(f,tform,'FillValue',0.5); % 用于输入图像区域外的像素颜色T2 = [1 0 0;0 1 0;50 50 1];tform2 = maketform('affine',T2); % 纯平移% g4 = imtransform(f,tform2);g5 = imtransform(f,tform2,'XData',[1 400],'YData',[1 400],'FillValue',0.5);subplot(2,3,1);imshow(f);title('原图像');subplot(2,3,2);imshow(g1);title('默认双线性插值');subplot(2,3,3);imshow(g2);title('最近邻内插');subplot(2,3,4);imshow(g3);title('填充图像区域外的像素颜色');subplot(2,3,6);imshow(g5);title('平移,指定输出空间位置');

运行结果

图像配准

代码示例

g = imread('aaa.tif');% 图像bbasepoints = [83 81;450 56;43 293;249 392;436 442];inputpoints = [68 66;375 47;42 286;275 434;523 532];gp = imtransform(g,tform,'XData',[1 502],'YData',[1 502]);imshow(gp); % 图像c

如果觉得《【图像处理】MATLAB:几何变换与图像配准》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。