怎么用MATLAB掌握图像平移、图像旋转和图像缩放的基本原理与实现方法

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:34:50
1.编程实现图像的平移,平移量应该可调(即用一个变量保存平移量),并显示对图像“view”的处理结果。
2.编程实现图像的缩放,缩放系数可调,分别用两个变量保存水平和垂直方向的缩放系数,并显示对图像“view”的处理结果。
3.编程实现图像绕图像原点的旋转,并显示对图像“couple”的处理结果。
题目补充:不能用MATLAB自带函数~~
无良的老师要求的~~

clear;
close all;
img1=imread('bmoban.jpg');%读取图像
img1=rgb2gray(img1);%转换为灰度图
figure,imshow(img1);
imwrite(img1,'a1.jpg');

se=translate(strel(1),[20 20]);%%%%%%平移
img2=imdilate(img1,se);
figure,imshow(img2);
imwrite(img2,'a2.jpg');

img3=imrotate(img1,90);%%%%%%旋转
figure,imshow(img3);
imwrite(img3,'a3.jpg');

img4=imresize(img1,2);% %%%%%缩放
figure,imshow(img4);
imwrite(img4,'a4.jpg');

%图像平移(1)
F=imread('p2.bmp');
se = translate(strel(1), [0 20]);
%参数[0 20]可以修改,修改后平移距离对应改变
J = imdilate(F,se);
figure;
imshow(J,[]);title('右移后图形');

%图像平移(2)
function outImage=immove(inImage,Tx,Ty)
[m, n] = size(inImage);
Tx=fix(Tx);
Ty=fix(Ty);

%move x
if (Tx<0)
inImage=imcrop(inImage,[abs(Tx),1,m-abs(Tx),n]);
[m, n] = size(inImage);
Tx=0;
end