10. matlab圖像處理基礎——圖像濾波、圖像裁剪、噪聲


1、圖像濾波

  

  步驟1:使用fspecial函數創建二維濾波器

  步驟2:使用函數imfilter進行濾波

%% 濾波
I = imread('cameraman.tif');
subplot(3,3,1),imshow(I),title('原圖像');
% 均值濾波
fs1 = fspecial('average');
J1 = imfilter(I,fs1);
subplot(3,3,2),imshow(J1),title('average');
% 圓形領域
fs2 = fspecial('disk');
J2 = imfilter(I,fs2);
subplot(3,3,3),imshow(J2),title('disk');
% 高斯
fs3 = fspecial('gaussian');
J3 = imfilter(I,fs3);
subplot(3,3,4),imshow(J3),title('gaussian');
% 高斯-拉普拉斯
fs4 = fspecial('log');
J4 = imfilter(I,fs4);
subplot(3,3,5),imshow(J4),title('log');
% 拉普拉斯
fs5 = fspecial('laplacian');
J5 = imfilter(I,fs5);
subplot(3,3,6),imshow(J5),title('laplacian');
% motion模版
fs6 = fspecial('motion');
J6 = imfilter(I,fs6);
subplot(3,3,7),imshow(J6),title('motion模版');
% prewitt模版
fs7 = fspecial('prewitt');
J7 = imfilter(I,fs7);
subplot(3,3,8),imshow(J7),title('prewitt模版');
% sobel模版
fs8 = fspecial('sobel');
J8 = imfilter(I,fs8);
subplot(3,3,9),imshow(J8),title('sobel模版');

2、圖像裁剪

  處理結果 = imcrop(原始圖像,裁剪區域)

  裁剪區域:[xmin, ymin, width, height]

%% 圖像裁剪
I = imread('cameraman.tif')
[x,y] = size(I);
subplot(2,3,1),imshow(I);
% 裁剪左上角
J1= imcrop(I,[0,0,100,100]);
subplot(2,3,2),imshow(J1);
% 裁剪右上角
J2= imcrop(I,[156,0,100,100]);
subplot(2,3,3),imshow(J2);
% 裁剪左下角
J3= imcrop(I,[0,156,100,100]);
subplot(2,3,4),imshow(J3);
% 裁剪右下角
J4= imcrop(I,[156,156,100,100]);
subplot(2,3,5),imshow(J4);
% 裁剪中間
J5= imcrop(I,[128,128,50,50]);
subplot(2,3,6),imshow(J5);

3、噪聲

 (1)噪聲

  處理結果 = imnoise(原始圖像,噪聲類型)

     

     

(2)高斯噪聲

%% 高斯噪聲
I = imread('lena.jpg');
subplot(1,2,1),imshow(I);
J = imnoise(I,'gaussian',0.01,0.1);
subplot(1,2,2),imshow(J);

(3)localvar噪聲--類型1

  目標圖像 = imnoise(原始圖像,'localvar',V)

  其中V是與原始圖像大小相同的一個數組。

%% localvar噪聲類型1
I = imread('lena.jpg');
subplot(1,2,1),imshow(I);
J = imnoise(I,'localvar',ones(size(I))*0.01);
subplot(1,2,2),imshow(J);

(4)localvar噪聲--類型2

  目標圖像 = imnoise(原始圖像,'localvar',image_intensity,var)

 

%% localvar噪聲類型2
I = imread('lena.jpg');
subplot(1,2,1),imshow(I);
J = imnoise(I,'localvar',rand(1,100),ones(1,100));
subplot(1,2,2),imshow(J);

 (4)泊松噪聲

  處理結果 = imnoise(原始圖像,'poisson')

%% 泊松噪聲
I = imread('lena.jpg');
subplot(1,2,1),imshow(I);
J = imnoise(I,'poisson');
subplot(1,2,2),imshow(J);

(5)椒鹽噪聲

  處理結果 = imnoise(原始圖像,'salt&pepper',d)

  其中,d是噪聲密度(即包括噪聲值的圖像區域的備份比),默認噪聲密度為0.5。

I = imread('lena.jpg');
subplot(1,2,1),imshow(I);
J = imnoise(I,'salt & pepper');
subplot(1,2,2),imshow(J);

(6)speckle噪聲

  處理結果 = imnoise(原始圖像,'speckle',V)

  目標圖像 = 原始圖像+n*原始圖像,其中,n是均值為0,方差為V的均勻分布的隨機噪聲。

  V的默認值是0.04。

I = imread('lena.jpg');
subplot(1,2,1),imshow(I);
J = imnoise(I,'speckle');
subplot(1,2,2),imshow(J);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM