原帖地址:http://blog.verycd.com/ari/showentry=48371
一 讀寫影像檔
1 imread
imread函數用於讀入各種影像檔,如:a=imread('e:/w01.tif')
註:電腦E盤上要有w01相應的.tif檔案。
2 imwrite
imwrite函數用於寫入影像檔,如:imwrite(a,'e:/w02.tif',’tif’)
3 imfinfo
imfinfo函數用於讀取影像檔的有關資訊,如:imfinfo('e:/w01.tif')
二 映像的顯示
1 image
image函數是MATLAB提供的最原始的映像顯示函數,如:
a=[1,2,3,4;4,5,6,7;8,9,10,11,12];
image(a);
2 imshow
imshow函數用於影像檔的顯示,如:
i=imread('e:/w01.tif');
imshow(i);
3 colorbar
colorbar函數用顯示映像的顏色條,如:
i=imread('e:/w01.tif');
imshow(i);
colorbar;
4 figure
figure函數用於設定映像顯示視窗,如:figure(1); /figure(2);
三 映像的變換
1 fft2
fft2函數用於數位影像的二維傅立葉變換,如:
i=imread('e:/w01.tif');
j=fft2(i);
2 ifft2
ifft2函數用於數位影像的二維傅立葉反變換,如:
i=imread('e:/w01.tif');
j=fft2(i);
k=ifft2(j);
3 利用fft2計算二維卷積
利用fft2函數可以計算二維卷積,如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
a(8,8)=0;
b(8,8)=0;
c=ifft2(fft2(a).*fft2();
c=c(1:5,1:5);
利用conv2(二維卷積函數)校正, 如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
c=conv2(a,;
四 類比雜訊產生函數和預定義濾波器
1 imnoise
imnoise函數用於對映像產生類比雜訊,如:
i=imread('e:/w01.tif');
j=imnoise(i,'gaussian',0,0.02);%類比高斯雜訊
2 fspecial
fspecial函數用於產生預定義濾波器,如:
h=fspecial('sobel');%sobel水平邊緣增強濾波器
h=fspecial('gaussian');%高斯低通濾波器
h=fspecial('laplacian');%拉普拉斯濾波器
h=fspecial('log');%高斯拉普拉斯(LoG)濾波器
h=fspecial('average');%均值濾波器
五 映像的增強
1 長條圖
imhist函數用於數位影像的長條圖顯示,如:
i=imread('e:/w01.tif');
imhist(i);
2 長條圖均化
histeq函數用於數位影像的長條圖均化,如:
i=imread('e:/w01.tif');
j=histeq(i);
3 對比調整
imadjust函數用於數位影像的對比調整,如:
i=imread('e:/w01.tif');
j=imadjust(i,[0.3,0.7],[]);
4 對數變換
log函數用於數位影像的對數變換,如:
i=imread('e:/w01.tif');
j=double(i);
k=log(j);
5 基於卷積的映像濾波函數
filter2函數用於映像濾波,如:
i=imread('e:/w01.tif');
h=[1,2,1;0,0,0;-1,-2,-1];
j=filter2(h,i);
6 線性濾波
利用二維卷積conv2濾波, 如:
i=imread('e:/w01.tif');
h=[1,1,1;1,1,1;1,1,1];
h=h/9;
j=conv2(i,h);
7 中值濾波
medfilt2函數用於映像的中值濾波,如:
i=imread('e:/w01.tif');
j=medfilt2(i);
8 銳利化
(1)利用Sobel運算元銳利化映像, 如:
i=imread('e:/w01.tif');
h=[1,2,1;0,0,0;-1,-2,-1];%Sobel運算元
j=filter2(h,i);
(2)利用拉氏運算元銳利化映像, 如:
i=imread('e:/w01.tif');
j=double(i);
h=[0,1,0;1,-4,0;0,1,0];%拉氏運算元
k=conv2(j,h,'same');
m=j-k;
六 舉例
二維傅立葉變換和二維傅立葉反變換:
i=imread('e:/w01.tif');
figure(1);
imshow(i);
colorbar;
j=fft2(i);
k=fftshift(j);
figure(2);
l=log(abs(k));
imshow(l,[]);
colorbar
n=ifft2(j)/255;
figure(3);
imshow(n);
colorbar;