matlab练习程序(图像放大/缩小,放大没有进行插值操作)

cl;
w=0.7; %放大或缩小的宽度
h=1.5; %放大或缩小的高度
img=imread('Corner.png');
imshow(img);
[m n]=size(img);
imgn=zeros(h*m,w*n);

rot=[h 0 0;0 w 0;0 0 1]; %变换矩阵x=h*u,y=w*v
for u=1:m
for v=1:n
pix=[u v 1]*rot;
if (pix(1)>=0.5 && pix(2)>=0.5) %matlab没有(0,0)这样的元素
%操作要取得的是整数,没听说过小数坐标吧.
imgn(round(pix(1)),round(pix(2)))=img(u,v); %放大还没有进行插值,缩小不用插值
end
end
end

figure,imshow(uint8(imgn))
posted @ 2012-03-07 22:32  Dsp Tian  阅读(3264)  评论(0编辑  收藏  举报