圖像幾何變換之放大縮小(MATLAB)

幾何變換之放大縮小

概念
1.縮小:從圖像中,刪除部分像素;
2. 放大:向圖像中增加部分像素,增加像素的取值是根據周圍相鄰像素的值進行插值計算得到的。

用法

調用格式:
B = imresize(A,m)
B = imresize(A,m,method)
B = imresize(A,[mrows ncols],method)
B = imresize(…,method,h)
參數說明

(1)返回的對象B的長寬是圖像A的長寬的m倍。

  • m大於1, 則放大圖像;
  • m小於1, 縮小圖像。

(2)參數method指定的插值運算來改變圖像的大小,三種選值:

    'nearest'最近鄰插值(默認值)
    'bilinear'雙線性插值
    'bicubic'雙三次插值(R2013a版本默認爲這種算法,不同版本可能有不同的默認參數)

(3)numrows和numcols分別指定目標圖像的高度和寬度。顯而易見,由於這種格式允許圖像縮放後長寬比例和源圖像長寬比例不同,因此所產生的圖像有可能發生畸變。

(4)B = imresize(…,method,h) 中的h可以是任意一個FIR濾波器(h通常由函數ftrans2、fwind1、fwind2、或fsamp2等生成的二維FIR濾波器)。

縮小示例代碼1:

%縮小
I=imread('pout.tif')
k1=0.6;k2=0.72;
[m,n] = size(I);
M = round(m*k1);
N = round(n*k2);
for i=1:M
	for j=1:N
		x=round(i/k1);
		if x>m x=m;end
		y=round(j/k2);
		if y>n y=n;%防止圖像大小溢出
		G(i,j)=I(x,y);
	end
end
figure(1);
subplot(121);
imshow(I);
subplot(122);
imshow(G);

縮小示例代碼2:

I = imread('pout.tif');
H = imresize(I,[175 180]);
figure(1);
subplot(121);
imshow(I);
subplot(122);
imshow(H);

運行結果:
在這裏插入圖片描述
練習題1:關於圖像縮小處理,下列說法正確的是( )

A、圖像的縮小隻能按比例進行
B、圖像的縮小是從原始圖像中選擇合適的像素點,使圖像縮小後可以儘量保持原有圖像的概貌特徵
C、利用基於等間隔採樣的圖像縮小方法對圖像進行處理時,不需要計算出採樣間隔
D、圖像的縮小隻能按不比例進行

正確答案: B

練習題2:關於圖像放大處理,下列說法正確的是( )
A、圖像的放大不會引起圖像的畸變
B、圖像的放大處理不需要對未知數據進行估計
C、當放大倍數比較大的時候,使用基於像素放大原理的圖像放大方法不會導致馬賽克現象
D、從物理意義上講,圖像的放大是圖像縮小的逆操作

正確答案: D

練習題3:圖像I經過 imresize(I,0.3)處理之後,是( )。
A、放大
B、縮小

正確答案: B

練習題4:假設原圖I大小爲256x256,新圖G大小爲128*128,請補充完整縮小操作的關鍵代碼。

正確答案:
x=round(i/0.5);
if x>m x=m;end
y=round(j/0.5);
if y >n y=n;end
G(x,y)=I(x,y)
練習題5:假設原圖I大小爲256x256,新圖G大小爲512*512,請補充完整放大操作的關鍵代碼。

正確答案:
x=round(i/2);
if x>m x=m;end
y=round(i/2);
if y >n y=n;end
G(x,y)=I(x,y)

練習題6:爲了產生一幅數字圖像,需要把連續的感知數據轉換爲數字形式。
這包括兩種處理:採樣量化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章