MATLAB初學——Matlab實作影像的幾何變換
1.影像比例縮放變換
主要函式:imresize()
實作代碼
image = imread('test.bmp');
image_1 = imresize(image,0.5); %比例縮小0.5倍
image_2 = imresize(image,[320,410]); %非比例縮小(指定行數和列數)
image_3 = imresize(image,2); %比例放大1倍
figure(1)
imshow(image);
title('原圖');
figure(2)
imshow(image_1);
title('比例縮小0.5倍');
figure(3)
imshow(image_2);
title('非比例縮小');
figure(4)
imshow(image_3);
title('比例放大');
2.影像平移變換
主要函式:translate(); imdilate(); imtranslate()
實作代碼
image = imread('test.bmp');
se = translate(strel(1), [150 150]); %將一個平面結構化元素分別向下和向右移動150個位置
image_1 = imdilate(image,se); %利用膨脹函式平移影像
image_2 = imtranslate(image,[150,150],'OutputView','full'); %平移后保持影像完整
figure(1)
imshow(image);
title('原圖');
figure(2)
imshow(image_1);
title('平移后的影像');
figure(3)
imshow(image_2);
title('平移后不被截去的影像');
3.影像鏡像變換
主要函式:maketform(); imtransform();
實作代碼
image = imread('test.bmp');
[height,width,dim] = size(image);
tform = maketform('affine',[-1 0 0;0 1 0;width 0 1]);
image_1 = imtransform(image,tform,'nearest');
tform2 = maketform('affine',[1 0 0;0 -1 0;0 height 1]);
image_2 = imtransform(image,tform2,'nearest');
subplot(1,3,1); imshow(image); title('原影像');
subplot(1,3,2); imshow(image_1); title('水平鏡像');
subplot(1,3,3); imshow(image_2); title('垂直鏡像');
4.影像旋轉變換
主要函式:imrotate()
實作代碼
image = imread('test.bmp');
image_1 = imrotate(image,40,'nearest','crop'); %最近鄰插值
image_2 = imrotate(image,40,'nearest','loose');
figure; imshow(image); title('原影像');
figure; imshow(image_1); title('旋轉后影像');
figure; imshow(image_2); title('旋轉后不被截去影像');
5.影像繞某點(非中心點)旋轉
自定義函式,構建變換矩陣,與原影像矩陣相乘,實作先平移后旋轉功能
實作代碼
function rotate(img)
[m,n] = size(img);
M = ones(m,n);
T1 = [1,0,0;0,1,0;-66,-66,1]; %平移至點P(66,66)
T2 = [cosd(60),-sind(60),0;sind(60),cosd(60),0;0,0,1]; %逆時針旋轉60°
T =T2*T1; %變換矩陣
for i=1:m
for j=1:n
p = floor([i,j,1]*T);
if (p(1)<=m)&&(p(1)>0)&&(p(2)<=n)&&(p(2)>0) %限制范圍
M(i,j) = img(p(1),p(2));
else
M(i,j) = 0;
end
end
end
figure; imshow(M,[]); title('繞點P逆時針旋轉60°');
image = imread('test.bmp');
image_1 = rgb2gray(image);
figure
subimage(image_1);
title('原圖');
rotate(image_1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/341987.html
標籤:其他
下一篇:opencv影像處理三
