Matlab函數實現圖像垂直鏡像

Matlab相關函數知識:

  • clc 清屏數組

  • close all 清除變量函數

  • clear all 關閉窗口spa

  • rgb2gray 將RGB圖像或顏色圖轉換爲灰度圖 code

  • size(A)  [在這裏只考慮A爲圖像]  blog

      • B = imresize(A,[300 300]) 將A圖像調整爲300*300大小,返回圖像B圖片

      • [m n] = size(A) 返回圖片像素的向量[m n],這裏也就是圖像的像素矩陣
  • imshow(I,[]) 顯示灰度圖像I,根據I中的像素值範圍對顯示進行轉換,它使用[min(I(:)) max(I(:))]做爲顯示範圍。將I中的最小值顯示爲黑色,將最大值顯示爲白色。it

  • X = zeros(sz1,...,szN) 返回由零組成的 sz1×...×szN 數組,其中 sz1,...,szN 指示每一個維度的大小。class

      • 例如:zeros(2,3) 將返回一個 2×3 矩陣。
  • 圖像合併:其實就是將圖片按矩陣排列後,造成一個新的圖像變量

      • [A B]:A圖和B圖水平拼接在一塊兒,能夠理解成是矩陣的一行im

      • [A B;C D]:這是一個兩行的矩陣,把四幅圖拼在一塊兒,其中A與B、C與D皆是水平拼接在一塊兒,它們各自拼接的圖片又組成一個2*1的矩陣

實例:

例1:將下圖轉爲灰度圖像,實現垂直鏡像

 

 

 

結果:

clc;
clear all;
close all;
A = imread('f.jpg');
I = rgb2gray(A);
[s1 s2] = size(I);
S = zeros(s1,s2);
for m = 1:s1
    for n = 1:s2
        S(m,n) = I(s1-m+1,n);
    end
end
figure;
subplot(211),imshow(I,[]),title('原圖');
subplot(212),imshow(S,[]),title('垂直鏡像');

  

理解:

S(m,n) = I(s1-m+1,n) 
要搞清楚s1表示第幾行,把上述圖片比做矩形,至關於寬,那麼咱們在作垂直鏡像時,觀察到其實每個像素點的列不變,行發生了變化,能夠本身舉一個對稱的小例子感覺一下,必定要注意s1纔是最大行數

例2:將如下四幅圖像的尺寸均從新規定爲300*300,並按照以下排列方式整合爲一幅圖像。

 

clc;
clear all;
close all;
P1 = imread('01.jpg');
P2 = imread('02.jpg');
P3 = imread('03.jpg');
P4 = imread('04.jpg');
f1 = imresize(P1,[300 300]);
f2 = imresize(P2,[300 300]);
f3 = imresize(P3,[300 300]);
f4 = imresize(P4,[300 300]);
I = [f1 f2;f3 f4];
figure;
imshow(I);
相關文章
相關標籤/搜索