国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Matlab常用圖像操作

Matlab常用圖像操作

一. 讀寫圖像文件

1. imread

imread函數(shù)用于讀入各種圖像文件,如:a=imread('e:\w01.tif')

注:計(jì)算機(jī)E盤上要有w01相應(yīng)的.tif文件。

2. imwrite

imwrite函數(shù)用于寫入圖像文件,如:imwrite(a,'e:\w02.tif',’tif’)

3. imfinfo

imfinfo函數(shù)用于讀取圖像文件的有關(guān)信息,如:imfinfo('e:\w01.tif')

二. 圖像的顯示

1. image

image函數(shù)是MATLAB提供的最原始的圖像顯示函數(shù)(主要彩色顯示圖象),如:

a=[1,2,3,4;4,5,6,7;8,9,10,11,12];

image(a);

2. imshow

imshow函數(shù)用于灰度圖像文件的顯示,如:

i=imread('e:\w01.tif');

imshow(i);

3. colorbar

colorbar函數(shù)用顯示圖像的顏色條。

通常,顏色映象進(jìn)行過(guò)調(diào)節(jié),把數(shù)據(jù)從最小擴(kuò)展到最大,也就是說(shuō)整個(gè)顏色映象都用于繪圖。有時(shí)也許想改變顏色使用的方法。函數(shù)caxis代表顏色軸,因?yàn)轭伾黾恿肆硪粋€(gè)維數(shù),它允許對(duì)數(shù)據(jù)范圍的一個(gè)子集使用整個(gè)顏色映象或者對(duì)數(shù)據(jù)的整個(gè)集合只使用當(dāng)前顏色映象的一部分。

      [cmin,cmax]=caxis返回映射到顏色映象中第一和最后輸入項(xiàng)的最小和最大的數(shù)據(jù)。它們通常被設(shè)成數(shù)據(jù)的最小值和最大值。比如,函數(shù)mesh(peaks)會(huì)畫出函數(shù)peaks的網(wǎng)格圖,并把顏色軸caxis設(shè)為[-6.5466,8.0752],即Z的最小值和最大值。這些值之間的數(shù)據(jù)點(diǎn),使用從顏色映象中經(jīng)插值得到的顏色。如:

i=imread('e:\w01.tif');

imshow(i);

colorbar;

4 .figure

figure函數(shù)用于設(shè)定圖像顯示窗口,如:figure(1); /figure(2);


5.imagesc(a);   caxis([-3 8]) ; colorbar;
標(biāo)尺標(biāo)度從-3,到8 顯示標(biāo)度尺。

三. 圖像的變換

1. fft2

fft2函數(shù)用于數(shù)字圖像的二維傅立葉變換,如:

i=imread('e:\w01.tif');

j=fft2(i);

2. ifft2

ifft2函數(shù)用于數(shù)字圖像的二維傅立葉反變換,如:

i=imread('e:\w01.tif');

j=fft2(i);

k=ifft2(j);

3. 利用fft2計(jì)算二維卷積

利用fft2函數(shù)可以計(jì)算二維卷積,如:

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(b));

c=c(1:5,1:5);

利用conv2(二維卷積函數(shù))校驗(yàn), 如:

a=[8,1,6;3,5,7;4,9,2];

b=[1,1,1;1,1,1;1,1,1];

c=conv2(a,b);

四. 模擬噪聲生成函數(shù)和預(yù)定義濾波器

1. imnoise

imnoise函數(shù)用于對(duì)圖像生成模擬噪聲,如:

i=imread('e:\w01.tif');

j=imnoise(i,'gaussian',0,0.02);%模擬高斯噪聲

2. fspecial

fspecial函數(shù)用于產(chǎn)生預(yù)定義濾波器,如:

h=fspecial('sobel');%sobel水平邊緣增強(qiáng)濾波器

h=fspecial('gaussian');%高斯低通濾波器

h=fspecial('laplacian');%拉普拉斯濾波器

h=fspecial('log');%高斯拉普拉斯(LoG)濾波器

h=fspecial('average');%均值濾波器

五. 圖像的增強(qiáng)

1. 直方圖

imhist函數(shù)用于數(shù)字圖像的直方圖顯示,如:

i=imread('e:\w01.tif');

imhist(i);

2. 直方圖均化

histeq函數(shù)用于數(shù)字圖像的直方圖均化,如:

i=imread('e:\w01.tif');

j=histeq(i);

3. 對(duì)比度調(diào)整

imadjust函數(shù)用于數(shù)字圖像的對(duì)比度調(diào)整,如:

i=imread('e:\w01.tif');

j=imadjust(i,[0.3,0.7],[]);

4. 對(duì)數(shù)變換

log函數(shù)用于數(shù)字圖像的對(duì)數(shù)變換,如:

i=imread('e:\w01.tif');

j=double(i);

k=log(j);

5. 基于卷積的圖像濾波函數(shù)

filter2函數(shù)用于圖像濾波,如:

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函數(shù)用于圖像的中值濾波,如:

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;

圖像的變換

1. 離散傅立葉變換的 Matlab 實(shí)現(xiàn)
      Matlab 函數(shù) fft、fft2 和 fftn 分別可以實(shí)現(xiàn)一維、二維和 N 維 DFT 算法;而函數(shù) ifft、ifft2 和 ifftn 則用來(lái)計(jì)算反 DFT 。這些函數(shù)的調(diào)用格式如下:
         A=fft(X,N,DIM)
      其中,X 表示輸入圖像;N 表示采樣間隔點(diǎn),如果 X 小于該數(shù)值,那么 Matlab 將會(huì)對(duì) X 進(jìn)行零填充,否則將進(jìn)行截取,使之長(zhǎng)度為 N ;DIM 表示要進(jìn)行離散傅立葉變換。

        A=fft2(X,MROWS,NCOLS)
其中,MROWS 和 NCOLS 指定對(duì) X 進(jìn)行零填充后的 X 大小。

        A=fftn(X,SIZE)
其中,SIZE 是一個(gè)向量,它們每一個(gè)元素都將指定 X 相應(yīng)維進(jìn)行零填充后的長(zhǎng)度。

      函數(shù) ifft、ifft2 和 ifftn的調(diào)用格式于對(duì)應(yīng)的離散傅立葉變換函數(shù)一致。

例子:圖像的二維傅立葉頻譜

% 讀入原始圖像
I=imread('lena.bmp');
imshow(I)
% 求離散傅立葉頻譜
J=fftshift(fft2(I));
figure;
imshow(log(abs(J)),[8,10])


2. 離散余弦變換的 Matlab 實(shí)現(xiàn)

2.1. dct2 函數(shù)
功能:二維 DCT 變換
格式:B=dct2(A)
        B=dct2(A,m,n)
        B=dct2(A,[m,n])
說(shuō)明:B=dct2(A) 計(jì)算 A 的 DCT 變換 B ,A 與 B 的大小相同;B=dct2(A,m,n) 和 B=dct2(A,[m,n]) 通過(guò)對(duì) A 補(bǔ) 0 或剪裁,使 B 的大小為 m×n。

2.2. dict2 函數(shù)
功能:DCT 反變換
格式:B=idct2(A)
        B=idct2(A,m,n)
        B=idct2(A,[m,n])
說(shuō)明:B=idct2(A) 計(jì)算 A 的 DCT 反變換 B ,A 與 B 的大小相同;B=idct2(A,m,n) 和 B=idct2(A,[m,n]) 通過(guò)對(duì) A 補(bǔ) 0 或剪裁,使 B 的大小為 m×n。

2.3. dctmtx函數(shù)
功能:計(jì)算 DCT 變換矩陣
格式:D=dctmtx(n)
說(shuō)明:D=dctmtx(n) 返回一個(gè) n×n 的 DCT 變換矩陣,輸出矩陣 D 為 double 類型。


3. 圖像小波變換的 Matlab 實(shí)現(xiàn)

3.1 一維小波變換的 Matlab 實(shí)現(xiàn)
(1) dwt 函數(shù)
功能:一維離散小波變換
格式:[cA,cD]=dwt(X,'wname')
        [cA,cD]=dwt(X,Lo_D,Hi_D)
說(shuō)明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函數(shù) 'wname' 對(duì)信號(hào) X 進(jìn)行分解,cA、cD 分別為近似分量和細(xì)節(jié)分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的濾波器組 Lo_D、Hi_D 對(duì)信號(hào)進(jìn)行分解。
(2) idwt 函數(shù)
功能:一維離散小波反變換
格式:X=idwt(cA,cD,'wname')
        X=idwt(cA,cD,Lo_R,Hi_R)
        X=idwt(cA,cD,'wname',L)
        X=idwt(cA,cD,Lo_R,Hi_R,L)
說(shuō)明:X=idwt(cA,cD,'wname') 由近似分量 cA 和細(xì)節(jié)分量 cD 經(jīng)小波反變換重構(gòu)原始信號(hào) X 。
        'wname' 為所選的小波函數(shù)
        X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重構(gòu)濾波器 Lo_R 和 Hi_R 經(jīng)小波反變換重構(gòu)原始信號(hào) X 。
        X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信號(hào) X 中心附近的 L 個(gè)點(diǎn)。

3.2 二維小波變換的 Matlab 實(shí)現(xiàn)

          二維小波變換的函數(shù)
-------------------------------------------------
     函數(shù)名                函數(shù)功能
---------------------------------------------------
     dwt2            二維離散小波變換
   wavedec2       二維信號(hào)的多層小波分解
     idwt2           二維離散小波反變換
   waverec2        二維信號(hào)的多層小波重構(gòu)
   wrcoef2          由多層小波分解重構(gòu)某一層的分解信號(hào)
   upcoef2          由多層小波分解重構(gòu)近似分量或細(xì)節(jié)分量
   detcoef2         提取二維信號(hào)小波分解的細(xì)節(jié)分量
   appcoef2        提取二維信號(hào)小波分解的近似分量
   upwlev2         二維小波分解的單層重構(gòu)
   dwtpet2         二維周期小波變換
   idwtper2        二維周期小波反變換
-------------------------------------------------------------

(1) wcodemat 函數(shù)
功能:對(duì)數(shù)據(jù)矩陣進(jìn)行偽彩色編碼
格式:Y=wcodemat(X,NB,OPT,ABSOL)
        Y=wcodemat(X,NB,OPT)
        Y=wcodemat(X,NB)
        Y=wcodemat(X)
說(shuō)明:Y=wcodemat(X,NB,OPT,ABSOL) 返回?cái)?shù)據(jù)矩陣 X 的編碼矩陣 Y ;NB 偽編碼的最大值,即編碼范圍為 0~NB,缺省值 NB=16;
       OPT 指定了編碼的方式(缺省值為 'mat'),即:
                 OPT='row' ,按行編碼
                 OPT='col' ,按列編碼
                 OPT='mat' ,按整個(gè)矩陣編碼
       ABSOL 是函數(shù)的控制參數(shù)(缺省值為 '1'),即:
                 ABSOL=0 時(shí),返回編碼矩陣
                 ABSOL=1 時(shí),返回?cái)?shù)據(jù)矩陣的絕對(duì)值 ABS(X)

(2) dwt2 函數(shù)
功能:二維離散小波變換
格式:[cA,cH,cV,cD]=dwt2(X,'wname')
        [cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)
說(shuō)明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函數(shù) 'wname' 對(duì)二維信號(hào) X進(jìn)行二維離散小波變幻;cA,cH,cV,cD分別為近似分量、水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量和對(duì)角細(xì)節(jié)分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)使用指定的分解低通和高通濾波器 Lo_D 和 Hi_D 分解信號(hào) X 。

(3) wavedec2 函數(shù)
功能:二維信號(hào)的多層小波分解
格式:[C,S]=wavedec2(X,N,'wname')
        [C,S]=wavedec2(X,N,Lo_D,Hi_D)
說(shuō)明:[C,S]=wavedec2(X,N,'wname') 使用小波基函數(shù) 'wname' 對(duì)二維信號(hào) X 進(jìn)行 N層分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D) 使用指定的分解低通和高通濾波器 Lo_D 和 Hi_D 分解信號(hào) X 。

(4) idwt2 函數(shù)
功能:二維離散小波反變換
格式:X=idwt2(cA,cH,cV,cD,'wname')
        X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)
        X=idwt2(cA,cH,cV,cD,'wname',S)
        X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)
說(shuō)明:X=idwt2(cA,cH,cV,cD,'wname') 由信號(hào)小波分解的近似信號(hào) cA 和細(xì)節(jié)信號(hào) cH、cH、cV、cD經(jīng)小波反變換重構(gòu)原信號(hào) X ;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R) 使用指定的重構(gòu)低通和高通濾波器 Lo_R 和Hi_R 重構(gòu)原信號(hào) X ;X=idwt2(cA,cH,cV,cD,'wname',S) 和X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S) 返回中心附近的 S 個(gè)數(shù)據(jù)點(diǎn)。

(5) waverec2 函數(shù)
說(shuō)明:二維信號(hào)的多層小波重構(gòu)
格式:X=waverec2(C,S,'wname')
        X=waverec2(C,S,Lo_R,Hi_R)
說(shuō)明:X=waverec2(C,S,'wname') 由多層二維小波分解的結(jié)果 C、S 重構(gòu)原始信號(hào) X ,'wname'為使用的小波基函數(shù);X=waverec2(C,S,Lo_R,Hi_R) 使用重構(gòu)低通和高通濾波器 Lo_R 和 Hi_R 重構(gòu)原信號(hào)。

圖像處理工具箱

1. 圖像和圖像數(shù)據(jù)
   缺省情況下,MATLAB將圖像中的數(shù)據(jù)存儲(chǔ)為雙精度類型(double),64位浮點(diǎn)
數(shù),所需存儲(chǔ)量很大;MATLAB還支持另一種類型無(wú)符號(hào)整型(uint8),即圖像矩
陣中每個(gè)數(shù)據(jù)占用1個(gè)字節(jié)。
   在使用MATLAB工具箱時(shí),一定要注意函數(shù)所要求的參數(shù)類型。另外,uint8
與double兩種類型數(shù)據(jù)的值域不同,編程需注意值域轉(zhuǎn)換。
          從uint8到double的轉(zhuǎn)換
   ---------------------------------------------
       圖像類型        MATLAB語(yǔ)句
   ---------------------------------------------
     索引色             B=double(A)+1
     索引色或真彩色 B=double(A)/255
     二值圖像          B=double(A)
   ---------------------------------------------

         從double到uint8的轉(zhuǎn)換
   ---------------------------------------------
       圖像類型        MATLAB語(yǔ)句
   ---------------------------------------------
    索引色               B=uint8(round(A-1))
    索引色或真彩色    B=uint8(round(A*255))
    二值圖像            B=logical(uint8(round(A)))
   ---------------------------------------------
2. 圖像處理工具箱所支持的圖像類型

2.1 真彩色圖像
    R、G、B三個(gè)分量表示一個(gè)像素的顏色。如果要讀取圖像中(100,50)處的像素值,
可查看三元數(shù)據(jù)(100,50,1:3)。
    真彩色圖像可用雙精度存儲(chǔ),亮度值范圍是[0,1];比較符合習(xí)慣的存儲(chǔ)方法是用無(wú)
符號(hào)整型存儲(chǔ),亮度值范圍[0,255]
  
2.2 索引色圖像
   包含兩個(gè)結(jié)構(gòu),一個(gè)是調(diào)色板,另一個(gè)是圖像數(shù)據(jù)矩陣。調(diào)色板是一個(gè)有3列和若干行
的色彩映象矩陣,矩陣每行代表一種顏色,3列分別代表紅、綠、藍(lán)色強(qiáng)度的雙精度數(shù)。
  
   注意:MATLAB中調(diào)色板色彩強(qiáng)度[0,1],0代表最暗,1代表最亮。
          常用顏色的RGB值
   --------------------------------------------
    顏色    R   G   B      顏色    R   G   B
   --------------------------------------------
     黑     0   0   1      洋紅    1   0   1
     白     1   1   1      青藍(lán)    0   1   1
     紅     1   0   0      天藍(lán) 0.67 0   1
     綠     0   1   0      橘黃    1 0.5 0
     藍(lán)     0   0   1      深紅   0.5 0   0
     黃     1   1   0       灰    0.5 0.5 0.5      
   --------------------------------------------
         產(chǎn)生標(biāo)準(zhǔn)調(diào)色板的函數(shù)
   -------------------------------------------------
    函數(shù)名       調(diào)色板
   -------------------------------------------------
     Hsv       色彩飽和度,以紅色開始,并以紅色結(jié)束
     Hot       黑色-紅色-黃色-白色
     Cool      青藍(lán)和洋紅的色度
     Pink      粉紅的色度
     Gray      線型灰度
     Bone      帶藍(lán)色的灰度
     Jet        Hsv的一種變形,以藍(lán)色開始,以藍(lán)色結(jié)束
     Copper    線型銅色度
     Prim       三棱鏡,交替為紅、橘黃、黃、綠和天藍(lán)
     Flag       交替為紅、白、藍(lán)和黑
--------------------------------------------------
   缺省情況下,調(diào)用上述函數(shù)灰產(chǎn)生一個(gè)64×3的調(diào)色板,用戶也可指定調(diào)色板大小。
  
   索引色圖像數(shù)據(jù)也有double和uint8兩種類型。
   當(dāng)圖像數(shù)據(jù)為double類型時(shí),值1代表調(diào)色板中的第1行,值2代表第2行……
   如果圖像數(shù)據(jù)為uint8類型,0代表調(diào)色板的第一行,,值1代表第2行……
2.3 灰度圖像
   存儲(chǔ)灰度圖像只需要一個(gè)數(shù)據(jù)矩陣。
   數(shù)據(jù)類型可以是double,[0,1];也可以是uint8,[0,255]
2.4 二值圖像
   二值圖像只需一個(gè)數(shù)據(jù)矩陣,每個(gè)像素只有兩個(gè)灰度值,可以采用uint8或double類型存儲(chǔ)。
   MATLAB工具箱中以二值圖像作為返回結(jié)果的函數(shù)都使用uint8類型。
2.5 圖像序列
   MATLAB工具箱支持將多幀圖像連接成圖像序列。
   圖像序列是一個(gè)4維數(shù)組,圖像幀的序號(hào)在圖像的長(zhǎng)、寬、顏色深度之后構(gòu)成第4維。
   分散的圖像也可以合并成圖像序列,前提是各圖像尺寸必須相同,若是索引色圖像,
調(diào)色板也必須相同。
   可參考cat()函數(shù)    A=cat(4,A1,A2,A3,A4,A5)
3. MATLAB圖像類型轉(zhuǎn)換
         圖像類型轉(zhuǎn)換函數(shù)
   ---------------------------------------------------------------------------
     函數(shù)名                      函數(shù)功能
   ---------------------------------------------------------------------------
     dither       圖像抖動(dòng),將灰度圖變成二值圖,或?qū)⒄娌噬珗D像抖動(dòng)成索引色圖像
    gray2ind    將灰度圖像轉(zhuǎn)換成索引圖像
    grayslice    通過(guò)設(shè)定閾值將灰度圖像轉(zhuǎn)換成索引色圖像
     im2bw      通過(guò)設(shè)定亮度閾值將真彩色、索引色、灰度圖轉(zhuǎn)換成二值圖
    ind2gray    將索引色圖像轉(zhuǎn)換成灰度圖像
    ind2rgb      將索引色圖像轉(zhuǎn)換成真彩色圖像
    mat2gray   將一個(gè)數(shù)據(jù)矩陣轉(zhuǎn)換成一副灰度圖
    rgb2gray    將一副真彩色圖像轉(zhuǎn)換成灰度圖像
    rgb2ind      將真彩色圖像轉(zhuǎn)換成索引色圖像
   ----------------------------------------------------------------------------
4. 圖像文件的讀寫和查詢

4.1 圖形圖像文件的讀取
   利用函數(shù)imread()可完成圖形圖像文件的讀取,語(yǔ)法:

     A=imread(filename,fmt)
     [X,map]=imread(filename,fmt)
     [...]=imread(filename)
     [...]=imread(filename,idx) (只對(duì)TIF格式的文件)
     [...]=imread(filename,ref) (只對(duì)HDF格式的文件)

   通常,讀取的大多數(shù)圖像均為8bit,當(dāng)這些圖像加載到內(nèi)存中時(shí),Matlab就將其存放
在類uint8中。此為Matlab還支持16bit的PNG和TIF圖像,當(dāng)讀取這類文件時(shí),Matlab就將
其存貯在uint16中。

   注意:對(duì)于索引圖像,即使圖像陣列的本身為類uint8或類uint16,imread函數(shù)仍將
顏色映象表讀取并存貯到一個(gè)雙精度的浮點(diǎn)類型的陣列中。

4.2 圖形圖像文件的寫入
   使用imwrite函數(shù),語(yǔ)法如下:

   imwrite(A,filename,fmt)
   imwrite(X,map,filename,fmt)
   imwrite(...,filename)
   imwrite(...,parameter,value)

   當(dāng)利用imwrite函數(shù)保存圖像時(shí),Matlab缺省的方式是將其簡(jiǎn)化道uint8的數(shù)據(jù)格式。

4.3 圖形圖像文件信息的查詢   imfinfo()函數(shù)
5. 圖像文件的顯示

5.1 索引圖像及其顯示

   方法一:
          image(X)
          colormap(map)

   方法二:
          imshow(X,map)

5.2 灰度圖像及其顯示
   Matlab 7.0 中,要顯示一副灰度圖像,可以調(diào)用函數(shù) imshow 或 imagesc (即
imagescale,圖像縮放函數(shù))

   (1) imshow 函數(shù)顯示灰度圖像
    使用 imshow(I)    或 使用明確指定的灰度級(jí)書目:imshow(I,32)
   
    由于Matlab自動(dòng)對(duì)灰度圖像進(jìn)行標(biāo)度以適合調(diào)色板的范圍,因而可以使用自定義
大小的調(diào)色板。其調(diào)用格式如下:
           imshow(I,[low,high])
    其中,low 和 high 分別為數(shù)據(jù)數(shù)組的最小值和最大值。

   (2) imagesc 函數(shù)顯示灰度圖像
   下面的代碼是具有兩個(gè)輸入?yún)?shù)的 imagesc 函數(shù)顯示一副灰度圖像
       imagesc(1,[0,1]);
       colormap(gray);
    imagesc 函數(shù)中的第二個(gè)參數(shù)確定灰度范圍?;叶确秶械牡谝粋€(gè)值(通常是0),
對(duì)應(yīng)于顏色映象表中的第一個(gè)值(顏色),第二個(gè)值(通常是1)則對(duì)應(yīng)與顏色映象表
中的最后一個(gè)值(顏色)?;叶确秶虚g的值則線型對(duì)應(yīng)與顏色映象表中剩余的值(顏色)。

    在調(diào)用 imagesc 函數(shù)時(shí),若只使用一個(gè)參數(shù),可以用任意灰度范圍顯示圖像。在該
調(diào)用方式下,數(shù)據(jù)矩陣中的最小值對(duì)應(yīng)于顏色映象表中的第一個(gè)顏色值,數(shù)據(jù)矩陣中的最大
值對(duì)應(yīng)于顏色映象表中的最后一個(gè)顏色值。

5.3 RGB 圖像及其顯示
   (1) image(RGB)
   不管RGB圖像的類型是double浮點(diǎn)型,還是 uint8 或 uint16 無(wú)符號(hào)整數(shù)型,Matlab都
能通過(guò) image 函數(shù)將其正確顯示出來(lái)。

   RGB8 = uint8(round(RGB64×255)); % 將 double 浮點(diǎn)型轉(zhuǎn)換為 uint8 無(wú)符號(hào)整型
   RGB64 = double(RGB8)/255;            % 將 uint8 無(wú)符號(hào)整型轉(zhuǎn)換為 double 浮點(diǎn)型
   RGB16 = uint16(round(RGB64×65535)); % 將 double 浮點(diǎn)型轉(zhuǎn)換為 uint16 無(wú)符號(hào)整型
   RGB64 = double(RGB16)/65535;      % 將 uint16 無(wú)符號(hào)整型轉(zhuǎn)換為 double 浮點(diǎn)型

   (2) imshow(RGB) 參數(shù)是一個(gè) m×n×3 的數(shù)組

5.4 二進(jìn)制圖像及其顯示

   (1) imshow(BW)
   在 Matlab 7.0 中,二進(jìn)制圖像是一個(gè)邏輯類,僅包括 0 和 1 兩個(gè)數(shù)值。像素 0 顯示
為黑色,像素 1 顯示為白色。
   顯示時(shí),也可通過(guò)NOT(~)命令,對(duì)二進(jìn)制圖象進(jìn)行取反,使數(shù)值 0 顯示為白色;1 顯示
為黑色。
   例如: imshow(~BW)

   (2) 此外,還可以使用一個(gè)調(diào)色板顯示一副二進(jìn)制圖像。如果圖形是 uint8 數(shù)據(jù)類型,
則數(shù)值 0 顯示為調(diào)色板的第一個(gè)顏色,數(shù)值 1 顯示為第二個(gè)顏色。
   例如: imshow(BW,[1 0 0;0 0 1])  

5.5 直接從磁盤顯示圖像
   可使用一下命令直接進(jìn)行圖像文件的顯示:
        imshow filename
   其中,filename 為要顯示的圖像文件的文件名。

   如果圖像是多幀的,那么 imshow 將僅顯示第一幀。但需注意,在使用這種方式時(shí),圖像
數(shù)據(jù)沒(méi)有保存在Matlab 7.0 工作平臺(tái)。如果希望將圖像裝入工作臺(tái)中,需使用 getimage 函
數(shù),從當(dāng)前的句柄圖形圖像對(duì)象中獲取圖像數(shù)據(jù),
   命令形式為: rgb = getimage;



http://hi.baidu.com/%C2%D2%CA%C0%B8%A1%C9%FA7077/blog/item/6b1841340e6b3786a61e12a3.html

圖像增強(qiáng)

1. 直方圖均衡化的 Matlab 實(shí)現(xiàn)

1.1 imhist 函數(shù)
功能:計(jì)算和顯示圖像的色彩直方圖
格式:imhist(I,n)
        imhist(X,map)
說(shuō)明:imhist(I,n) 其中,n 為指定的灰度級(jí)數(shù)目,缺省值為256;imhist(X,map) 就算和顯示索引色圖像 X 的直方圖,map 為調(diào)色板。用

stem(x,counts) 同樣可以顯示直方圖。

1.2 imcontour 函數(shù)
功能:顯示圖像的等灰度值圖
格式:imcontour(I,n),imcontour(I,v)
說(shuō)明:n 為灰度級(jí)的個(gè)數(shù),v 是有用戶指定所選的等灰度級(jí)向量。

1.3 imadjust 函數(shù)
功能:通過(guò)直方圖變換調(diào)整對(duì)比度
格式:J=imadjust(I,[low high],[bottom top],gamma)
        newmap=imadjust(map,[low high],[bottom top],gamma)
說(shuō)明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 為校正量r,[low high] 為原圖像中要變換的灰度范圍,[bottom top]

指定了變換后的灰度范圍;newmap=imadjust(map,[low high],[bottom top],gamma) 調(diào)整索引色圖像的調(diào)色板 map 。此時(shí)若 [low high] 和

[bottom top] 都為2×3的矩陣,則分別調(diào)整 R、G、B 3個(gè)分量。

1.4 histeq 函數(shù)
功能:直方圖均衡化
格式:J=histeq(I,hgram)
        J=histeq(I,n)
        [J,T]=histeq(I,...)
        newmap=histeq(X,map,hgram)
        newmap=histeq(X,map)
        [new,T]=histeq(X,...)
說(shuō)明:J=histeq(I,hgram) 實(shí)現(xiàn)了所謂“直方圖規(guī)定化”,即將原是圖象 I 的直方圖變換成用戶指定的向量 hgram 。hgram 中的每一個(gè)元素

都在 [0,1] 中;J=histeq(I,n) 指定均衡化后的灰度級(jí)數(shù) n ,缺省值為 64;[J,T]=histeq(I,...) 返回從能將圖像 I 的灰度直方圖變換成

圖像 J 的直方圖的變換 T ;newmap=histeq(X,map) 和 [new,T]=histeq(X,...) 是針對(duì)索引色圖像調(diào)色板的直方圖均衡。

2. 噪聲及其噪聲的 Matlab 實(shí)現(xiàn)
        imnoise 函數(shù)
格式:J=imnoise(I,type)
        J=imnoise(I,type,parameter)
說(shuō)明:J=imnoise(I,type) 返回對(duì)圖像 I 添加典型噪聲后的有噪圖像 J ,參數(shù) type 和 parameter 用于確定噪聲的類型和相應(yīng)的參數(shù)。

3. 圖像濾波的 Matlab 實(shí)現(xiàn)

3.1 conv2 函數(shù)
功能:計(jì)算二維卷積
格式:C=conv2(A,B)
        C=conv2(Hcol,Hrow,A)
        C=conv2(...,'shape')
說(shuō)明:對(duì)于 C=conv2(A,B) ,conv2 的算矩陣 A 和 B 的卷積,若 [Ma,Na]=size(A), [Mb,Nb]=size(B), 則 size(C)=[Ma+Mb-1,Na+Nb-1];

C=conv2(Hcol,Hrow,A) 中,矩陣 A 分別與 Hcol 向量在列方向和 Hrow 向量在行方向上進(jìn)行卷積;C=conv2(...,'shape') 用來(lái)指定 conv2

返回二維卷積結(jié)果部分,參數(shù) shape 可取值如下:
        》full 為缺省值,返回二維卷積的全部結(jié)果;
        》same 返回二維卷積結(jié)果中與 A 大小相同的中間部分;
        valid 返回在卷積過(guò)程中,未使用邊緣補(bǔ) 0 部分進(jìn)行計(jì)算的卷積結(jié)果部分,當(dāng) size(A)>size(B) 時(shí),size(C)=[Ma-Mb+1,Na-Nb+1]

。

3.2 conv 函數(shù)
功能:計(jì)算多維卷積
格式:與 conv2 函數(shù)相同

3.3 filter2函數(shù)
功能:計(jì)算二維線型數(shù)字濾波,它與函數(shù) fspecial 連用
格式:Y=filter2(B,X)
        Y=filter2(B,X,'shape')
說(shuō)明:對(duì)于 Y=filter2(B,X) ,filter2 使用矩陣 B 中的二維 FIR 濾波器對(duì)數(shù)據(jù) X 進(jìn)行濾波,結(jié)果 Y 是通過(guò)二維互相關(guān)計(jì)算出來(lái)的,其大

小與 X 一樣;對(duì)于 Y=filter2(B,X,'shape') ,filter2 返回的 Y 是通過(guò)二維互相關(guān)計(jì)算出來(lái)的,其大小由參數(shù) shape 確定,其取值如下


        》full 返回二維相關(guān)的全部結(jié)果,size(Y)>size(X);
        》same 返回二維互相關(guān)結(jié)果的中間部分,Y 與 X 大小相同;
        》valid 返回在二維互相關(guān)過(guò)程中,未使用邊緣補(bǔ) 0 部分進(jìn)行計(jì)算的結(jié)果部分,有 size(Y)<size(X) 。

3.4 fspecial 函數(shù)
功能:產(chǎn)生預(yù)定義濾波器
格式:H=fspecial(type)
        H=fspecial('gaussian',n,sigma)         高斯低通濾波器
        H=fspecial('sobel')                          Sobel 水平邊緣增強(qiáng)濾波器
        H=fspecial('prewitt')                       Prewitt 水平邊緣增強(qiáng)濾波器
        H=fspecial('laplacian',alpha)             近似二維拉普拉斯運(yùn)算濾波器
        H=fspecial('log',n,sigma)                 高斯拉普拉斯(LoG)運(yùn)算濾波器
        H=fspecial('average',n)                   均值濾波器
        H=fspecial('unsharp',alpha)             模糊對(duì)比增強(qiáng)濾波器
說(shuō)明:對(duì)于形式 H=fspecial(type) ,fspecial 函數(shù)產(chǎn)生一個(gè)由 type 指定的二維濾波器 H ,返回的 H 常與其它濾波器搭配使用。

4. 彩色增強(qiáng)的 Matlab 實(shí)現(xiàn)
4.1 imfilter函數(shù)
功能:真彩色增強(qiáng)
格式:B=imfilter(A,h)
說(shuō)明:將原始圖像 A 按指定的濾波器 h 進(jìn)行濾波增強(qiáng)處理,增強(qiáng)后的圖像 B 與 A 的尺寸和類型相同

圖像的變換
1. 離散傅立葉變換的 Matlab 實(shí)現(xiàn)
      Matlab 函數(shù) fft、fft2 和 fftn 分別可以實(shí)現(xiàn)一維、二維和 N 維 DFT 算法;而函數(shù) ifft、ifft2 和 ifftn 則用來(lái)計(jì)算反 DFT 。

這些函數(shù)的調(diào)用格式如下:
         A=fft(X,N,DIM)
      其中,X 表示輸入圖像;N 表示采樣間隔點(diǎn),如果 X 小于該數(shù)值,那么 Matlab 將會(huì)對(duì) X 進(jìn)行零填充,否則將進(jìn)行截取,使之長(zhǎng)度為

N ;DIM 表示要進(jìn)行離散傅立葉變換。

        A=fft2(X,MROWS,NCOLS)
其中,MROWS 和 NCOLS 指定對(duì) X 進(jìn)行零填充后的 X 大小。

        A=fftn(X,SIZE)
其中,SIZE 是一個(gè)向量,它們每一個(gè)元素都將指定 X 相應(yīng)維進(jìn)行零填充后的長(zhǎng)度。

      函數(shù) ifft、ifft2 和 ifftn的調(diào)用格式于對(duì)應(yīng)的離散傅立葉變換函數(shù)一致。

例子:圖像的二維傅立葉頻譜

% 讀入原始圖像
I=imread('lena.bmp');
imshow(I)
% 求離散傅立葉頻譜
J=fftshift(fft2(I));
figure;
imshow(log(abs(J)),[8,10])


2. 離散余弦變換的 Matlab 實(shí)現(xiàn)

2.1. dCT2 函數(shù)
功能:二維 DCT 變換
格式:B=dct2(A)
        B=dct2(A,m,n)
        B=dct2(A,[m,n])
說(shuō)明:B=dct2(A) 計(jì)算 A 的 DCT 變換 B ,A 與 B 的大小相同;B=dct2(A,m,n) 和 B=dct2(A,[m,n]) 通過(guò)對(duì) A 補(bǔ) 0 或剪裁,使 B 的大

小為 m×n。

2.2. dict2 函數(shù)
功能:DCT 反變換
格式:B=idct2(A)
        B=idct2(A,m,n)
        B=idct2(A,[m,n])
說(shuō)明:B=idct2(A) 計(jì)算 A 的 DCT 反變換 B ,A 與 B 的大小相同;B=idct2(A,m,n) 和 B=idct2(A,[m,n]) 通過(guò)對(duì) A 補(bǔ) 0 或剪裁,使 B

的大小為 m×n。

2.3. dctmtx函數(shù)
功能:計(jì)算 DCT 變換矩陣
格式:D=dctmtx(n)
說(shuō)明:D=dctmtx(n) 返回一個(gè) n×n 的 DCT 變換矩陣,輸出矩陣 D 為 double 類型。


3. 圖像小波變換的 Matlab 實(shí)現(xiàn)

3.1 一維小波變換的 Matlab 實(shí)現(xiàn)
(1) dwt 函數(shù)
功能:一維離散小波變換
格式:[cA,cD]=dwt(X,'wname')
        [cA,cD]=dwt(X,Lo_D,Hi_D)
說(shuō)明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函數(shù) 'wname' 對(duì)信號(hào) X 進(jìn)行分解,cA、cD

分別為近似分量和細(xì)節(jié)分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的濾波器組 Lo_D、Hi_D 對(duì)信號(hào)進(jìn)行分解。
(2) idwt 函數(shù)
功能:一維離散小波反變換
格式:X=idwt(cA,cD,'wname')
        X=idwt(cA,cD,Lo_R,Hi_R)
        X=idwt(cA,cD,'wname',L)
        X=idwt(cA,cD,Lo_R,Hi_R,L)
說(shuō)明:X=idwt(cA,cD,'wname') 由近似分量 cA 和細(xì)節(jié)分量 cD 經(jīng)小波反變換重構(gòu)原始信號(hào) X 。
        'wname' 為所選的小波函數(shù)
        X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重構(gòu)濾波器 Lo_R 和 Hi_R 經(jīng)小波反變換重構(gòu)原始信號(hào) X 。
        X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信號(hào) X 中心附近的 L 個(gè)點(diǎn)。

3.2 二維小波變換的 Matlab 實(shí)現(xiàn)

          二維小波變換的函數(shù)
-------------------------------------------------
     函數(shù)名                函數(shù)功能
---------------------------------------------------
     dwt2            二維離散小波變換
   wavedec2       二維信號(hào)的多層小波分解
     idwt2           二維離散小波反變換
   waverec2        二維信號(hào)的多層小波重構(gòu)
   wrcoef2          由多層小波分解重構(gòu)某一層的分解信號(hào)
   upcoef2          由多層小波分解重構(gòu)近似分量或細(xì)節(jié)分量
   detcoef2         提取二維信號(hào)小波分解的細(xì)節(jié)分量
   appcoef2        提取二維信號(hào)小波分解的近似分量
   upwlev2         二維小波分解的單層重構(gòu)
   dwtpet2         二維周期小波變換
   idwtper2        二維周期小波反變換
-------------------------------------------------------------

(1) wcodemat 函數(shù)
功能:對(duì)數(shù)據(jù)矩陣進(jìn)行偽彩色編碼
格式:Y=wcodemat(X,NB,OPT,ABSOL)
        Y=wcodemat(X,NB,OPT)
        Y=wcodemat(X,NB)
        Y=wcodemat(X)
說(shuō)明:Y=wcodemat(X,NB,OPT,ABSOL) 返回?cái)?shù)據(jù)矩陣 X 的編碼矩陣 Y ;NB 偽編碼的最大值,即編碼范圍為 0~NB,缺省值 NB=16;
       OPT 指定了編碼的方式(缺省值為 'mat'),即:
                 OPT='row' ,按行編碼
                 OPT='col' ,按列編碼
                 OPT='mat' ,按整個(gè)矩陣編碼
       ABSOL 是函數(shù)的控制參數(shù)(缺省值為 '1'),即:
                 ABSOL=0 時(shí),返回編碼矩陣
                 ABSOL=1 時(shí),返回?cái)?shù)據(jù)矩陣的絕對(duì)值 ABS(X)

(2) dwt2 函數(shù)
功能:二維離散小波變換
格式:[cA,cH,cV,cD]=dwt2(X,'wname')
        [cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)
說(shuō)明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函數(shù) 'wname' 對(duì)二維信號(hào) X 進(jìn)行二維離散小波變幻;cA,cH,cV,cD 分別為近似分

量、水平細(xì)節(jié)分量、垂直細(xì)節(jié)分量和對(duì)角細(xì)節(jié)分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通濾波器 Lo_D 和 Hi_D 分

解信號(hào) X 。

(3) wavedec2 函數(shù)
功能:二維信號(hào)的多層小波分解
格式:[C,S]=wavedec2(X,N,'wname')
        [C,S]=wavedec2(X,N,Lo_D,Hi_D)
說(shuō)明:[C,S]=wavedec2(X,N,'wname') 使用小波基函數(shù) 'wname' 對(duì)二維信號(hào) X 進(jìn)行 N 層分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D) 使用指定

的分解低通和高通濾波器 Lo_D 和 Hi_D 分解信號(hào) X 。

(4) idwt2 函數(shù)
功能:二維離散小波反變換
格式:X=idwt2(cA,cH,cV,cD,'wname')
        X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)
        X=idwt2(cA,cH,cV,cD,'wname',S)
        X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)
說(shuō)明:X=idwt2(cA,cH,cV,cD,'wname') 由信號(hào)小波分解的近似信號(hào) cA 和細(xì)節(jié)信號(hào) cH、cH、cV、cD 經(jīng)小波反變換重構(gòu)原信號(hào) X

;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R) 使用指定的重構(gòu)低通和高通濾波器 Lo_R 和 Hi_R 重構(gòu)原信號(hào) X ;X=idwt2(cA,cH,cV,cD,'wname',S)

和 X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S) 返回中心附近的 S 個(gè)數(shù)據(jù)點(diǎn)。

(5) waverec2 函數(shù)
說(shuō)明:二維信號(hào)的多層小波重構(gòu)
格式:X=waverec2(C,S,'wname')
        X=waverec2(C,S,Lo_R,Hi_R)
說(shuō)明:X=waverec2(C,S,'wname') 由多層二維小波分解的結(jié)果 C、S 重構(gòu)原始信號(hào) X ,'wname'

為使用的小波基函數(shù);X=waverec2(C,S,Lo_R,Hi_R) 使用重構(gòu)低通和高通濾波器 Lo_R 和 Hi_R 重構(gòu)原信號(hào)。

圖像處理工具箱
1. 圖像和圖像數(shù)據(jù)
   缺省情況下,MATLAB將圖像中的數(shù)據(jù)存儲(chǔ)為雙精度類型(double),64位浮點(diǎn)
數(shù),所需存儲(chǔ)量很大;MATLAB還支持另一種類型無(wú)符號(hào)整型(uint8),即圖像矩
陣中每個(gè)數(shù)據(jù)占用1個(gè)字節(jié)。
   在使用MATLAB工具箱時(shí),一定要注意函數(shù)所要求的參數(shù)類型。另外,uint8
與double兩種類型數(shù)據(jù)的值域不同,編程需注意值域轉(zhuǎn)換。
          從uint8到double的轉(zhuǎn)換
   ---------------------------------------------
       圖像類型        MATLAB語(yǔ)句
   ---------------------------------------------
     索引色             B=double(A)+1
     索引色或真彩色 B=double(A)/255
     二值圖像          B=double(A)
   ---------------------------------------------

         從double到uint8的轉(zhuǎn)換
   ---------------------------------------------
       圖像類型        MATLAB語(yǔ)句
   ---------------------------------------------
    索引色               B=uint8(round(A-1))
    索引色或真彩色    B=uint8(round(A*255))
    二值圖像            B=logical(uint8(round(A)))
   ---------------------------------------------

2. 圖像處理工具箱所支持的圖像類型

2.1 真彩色圖像
    R、G、B三個(gè)分量表示一個(gè)像素的顏色。如果要讀取圖像中(100,50)處的像素值,
可查看三元數(shù)據(jù)(100,50,1:3)。
    真彩色圖像可用雙精度存儲(chǔ),亮度值范圍是[0,1];比較符合習(xí)慣的存儲(chǔ)方法是用無(wú)
符號(hào)整型存儲(chǔ),亮度值范圍[0,255]
  
2.2 索引色圖像
   包含兩個(gè)結(jié)構(gòu),一個(gè)是調(diào)色板,另一個(gè)是圖像數(shù)據(jù)矩陣。調(diào)色板是一個(gè)有3列和若干行
的色彩映象矩陣,矩陣每行代表一種顏色,3列分別代表紅、綠、藍(lán)色強(qiáng)度的雙精度數(shù)。
  
   注意:MATLAB中調(diào)色板色彩強(qiáng)度[0,1],0代表最暗,1代表最亮。
          常用顏色的RGB值
   --------------------------------------------
    顏色    R   G   B      顏色    R   G   B
   --------------------------------------------
     黑     0   0   1      洋紅    1   0   1
     白     1   1   1      青藍(lán)    0   1   1
     紅     1   0   0      天藍(lán) 0.67 0   1
     綠     0   1   0      橘黃    1 0.5 0
     藍(lán)     0   0   1      深紅   0.5 0   0
     黃     1   1   0       灰    0.5 0.5 0.5      
   --------------------------------------------
         產(chǎn)生標(biāo)準(zhǔn)調(diào)色板的函數(shù)
   -------------------------------------------------
    函數(shù)名       調(diào)色板
   -------------------------------------------------
     Hsv       色彩飽和度,以紅色開始,并以紅色結(jié)束
     Hot       黑色-紅色-黃色-白色
     Cool      青藍(lán)和洋紅的色度
     Pink      粉紅的色度
     Gray      線型灰度
     Bone      帶藍(lán)色的灰度
     Jet        Hsv的一種變形,以藍(lán)色開始,以藍(lán)色結(jié)束
     Copper    線型銅色度
     Prim       三棱鏡,交替為紅、橘黃、黃、綠和天藍(lán)
     Flag       交替為紅、白、藍(lán)和黑
--------------------------------------------------
   缺省情況下,調(diào)用上述函數(shù)灰產(chǎn)生一個(gè)64×3的調(diào)色板,用戶也可指定調(diào)色板大小。
  
   索引色圖像數(shù)據(jù)也有double和uint8兩種類型。
   當(dāng)圖像數(shù)據(jù)為double類型時(shí),值1代表調(diào)色板中的第1行,值2代表第2行……
   如果圖像數(shù)據(jù)為uint8類型,0代表調(diào)色板的第一行,,值1代表第2行……

2.3 灰度圖像
   存儲(chǔ)灰度圖像只需要一個(gè)數(shù)據(jù)矩陣。
   數(shù)據(jù)類型可以是double,[0,1];也可以是uint8,[0,255]

2.4 二值圖像
   二值圖像只需一個(gè)數(shù)據(jù)矩陣,每個(gè)像素只有兩個(gè)灰度值,可以采用uint8或double類型存儲(chǔ)。
   MATLAB工具箱中以二值圖像作為返回結(jié)果的函數(shù)都使用uint8類型。

2.5 圖像序列
   MATLAB工具箱支持將多幀圖像連接成圖像序列。
   圖像序列是一個(gè)4維數(shù)組,圖像幀的序號(hào)在圖像的長(zhǎng)、寬、顏色深度之后構(gòu)成第4維。
   分散的圖像也可以合并成圖像序列,前提是各圖像尺寸必須相同,若是索引色圖像,
調(diào)色板也必須相同。
   可參考cat()函數(shù)    A=cat(4,A1,A2,A3,A4,A5)

3. MATLAB圖像類型轉(zhuǎn)換
         圖像類型轉(zhuǎn)換函數(shù)
   ---------------------------------------------------------------------------
     函數(shù)名                      函數(shù)功能
   ---------------------------------------------------------------------------
     dither       圖像抖動(dòng),將灰度圖變成二值圖,或?qū)⒄娌噬珗D像抖動(dòng)成索引色圖像
    gray2ind    將灰度圖像轉(zhuǎn)換成索引圖像
    grayslice    通過(guò)設(shè)定閾值將灰度圖像轉(zhuǎn)換成索引色圖像
     im2bw      通過(guò)設(shè)定亮度閾值將真彩色、索引色、灰度圖轉(zhuǎn)換成二值圖
    ind2gray    將索引色圖像轉(zhuǎn)換成灰度圖像
    ind2rgb      將索引色圖像轉(zhuǎn)換成真彩色圖像
    mat2gray   將一個(gè)數(shù)據(jù)矩陣轉(zhuǎn)換成一副灰度圖
    rgb2gray    將一副真彩色圖像轉(zhuǎn)換成灰度圖像
    rgb2ind      將真彩色圖像轉(zhuǎn)換成索引色圖像
   ----------------------------------------------------------------------------

4. 圖像文件的讀寫和查詢

4.1 圖形圖像文件的讀取
   利用函數(shù)imread()可完成圖形圖像文件的讀取,語(yǔ)法:

     A=imread(filename,fmt)
     [X,map]=imread(filename,fmt)
     [...]=imread(filename)
     [...]=imread(filename,idx) (只對(duì)TIF格式的文件)
     [...]=imread(filename,ref) (只對(duì)HDF格式的文件)

   通常,讀取的大多數(shù)圖像均為8bit,當(dāng)這些圖像加載到內(nèi)存中時(shí),Matlab就將其存放
在類uint8中。此為Matlab還支持16bit的PNG和TIF圖像,當(dāng)讀取這類文件時(shí),Matlab就將
其存貯在uint16中。

   注意:對(duì)于索引圖像,即使圖像陣列的本身為類uint8或類uint16,imread函數(shù)仍將
顏色映象表讀取并存貯到一個(gè)雙精度的浮點(diǎn)類型的陣列中。

4.2 圖形圖像文件的寫入
   使用imwrite函數(shù),語(yǔ)法如下:

   imwrite(A,filename,fmt)
   imwrite(X,map,filename,fmt)
   imwrite(...,filename)
   imwrite(...,parameter,value)

   當(dāng)利用imwrite函數(shù)保存圖像時(shí),Matlab缺省的方式是將其簡(jiǎn)化道uint8的數(shù)據(jù)格式。

4.3 圖形圖像文件信息的查詢   imfinfo()函數(shù)

5. 圖像文件的顯示

5.1 索引圖像及其顯示

   方法一:
          image(X)
          colormap(map)

   方法二:
          imshow(X,map)

5.2 灰度圖像及其顯示
   Matlab 7.0 中,要顯示一副灰度圖像,可以調(diào)用函數(shù) imshow 或 imagesc (即
imagescale,圖像縮放函數(shù))

   (1) imshow 函數(shù)顯示灰度圖像
    使用 imshow(I)    或 使用明確指定的灰度級(jí)書目:imshow(I,32)
   
    由于Matlab自動(dòng)對(duì)灰度圖像進(jìn)行標(biāo)度以適合調(diào)色板的范圍,因而可以使用自定義
大小的調(diào)色板。其調(diào)用格式如下:
           imshow(I,[low,high])
    其中,low 和 high 分別為數(shù)據(jù)數(shù)組的最小值和最大值。

   (2) imagesc 函數(shù)顯示灰度圖像
   下面的代碼是具有兩個(gè)輸入?yún)?shù)的 imagesc 函數(shù)顯示一副灰度圖像
       imagesc(1,[0,1]);
       colormap(gray);
    imagesc 函數(shù)中的第二個(gè)參數(shù)確定灰度范圍?;叶确秶械牡谝粋€(gè)值(通常是0),
對(duì)應(yīng)于顏色映象表中的第一個(gè)值(顏色),第二個(gè)值(通常是1)則對(duì)應(yīng)與顏色映象表
中的最后一個(gè)值(顏色)。灰度范圍中間的值則線型對(duì)應(yīng)與顏色映象表中剩余的值(顏色)。

    在調(diào)用 imagesc 函數(shù)時(shí),若只使用一個(gè)參數(shù),可以用任意灰度范圍顯示圖像。在該
調(diào)用方式下,數(shù)據(jù)矩陣中的最小值對(duì)應(yīng)于顏色映象表中的第一個(gè)顏色值,數(shù)據(jù)矩陣中的最大
值對(duì)應(yīng)于顏色映象表中的最后一個(gè)顏色值。

5.3 RGB 圖像及其顯示
   (1) image(RGB)
   不管RGB圖像的類型是double浮點(diǎn)型,還是 uint8 或 uint16 無(wú)符號(hào)整數(shù)型,Matlab都
能通過(guò) image 函數(shù)將其正確顯示出來(lái)。

   RGB8 = uint8(round(RGB64×255)); % 將 double 浮點(diǎn)型轉(zhuǎn)換為 uint8 無(wú)符號(hào)整型
   RGB64 = double(RGB8)/255;            % 將 uint8 無(wú)符號(hào)整型轉(zhuǎn)換為 double 浮點(diǎn)型
   RGB16 = uint16(round(RGB64×65535)); % 將 double 浮點(diǎn)型轉(zhuǎn)換為 uint16 無(wú)符號(hào)整型
   RGB64 = double(RGB16)/65535;      % 將 uint16 無(wú)符號(hào)整型轉(zhuǎn)換為 double 浮點(diǎn)型

   (2) imshow(RGB) 參數(shù)是一個(gè) m×n×3 的數(shù)組

5.4 二進(jìn)制圖像及其顯示

   (1) imshow(BW)
   在 Matlab 7.0 中,二進(jìn)制圖像是一個(gè)邏輯類,僅包括 0 和 1 兩個(gè)數(shù)值。像素 0 顯示
為黑色,像素 1 顯示為白色。
   顯示時(shí),也可通過(guò)NOT(~)命令,對(duì)二進(jìn)制圖象進(jìn)行取反,使數(shù)值 0 顯示為白色;1 顯示
為黑色。
   例如: imshow(~BW)

   (2) 此外,還可以使用一個(gè)調(diào)色板顯示一副二進(jìn)制圖像。如果圖形是 uint8 數(shù)據(jù)類型,
則數(shù)值 0 顯示為調(diào)色板的第一個(gè)顏色,數(shù)值 1 顯示為第二個(gè)顏色。
   例如: imshow(BW,[1 0 0;0 0 1])  

5.5 直接從磁盤顯示圖像
   可使用一下命令直接進(jìn)行圖像文件的顯示:
        imshow filename
   其中,filename 為要顯示的圖像文件的文件名。

   如果圖像是多幀的,那么 imshow 將僅顯示第一幀。但需注意,在使用這種方式時(shí),圖像
數(shù)據(jù)沒(méi)有保存在Matlab 7.0 工作平臺(tái)。如果希望將圖像裝入工作臺(tái)中,需使用 getimage 函
數(shù),從當(dāng)前的句柄圖形圖像對(duì)象中獲取圖像數(shù)據(jù),
   命令形式為: rgb = getimage;

bwlabel
功能:
標(biāo)注二進(jìn)制圖像中已連接的部分。
L = bwlabel(BW,n)
[L,num] = bwlabel(BW,n)

isbw
功能:
判斷是否為二進(jìn)制圖像。
語(yǔ)法:
flag = isbw(A)
相關(guān)命令:
isind, isgray, isrgb
74.isgray
功能:
判斷是否為灰度圖像。
語(yǔ)法:
flag = isgray(A)
相關(guān)命令:
isbw, isind, isrgb

11.bwselect
功能:
在二進(jìn)制圖像中選擇對(duì)象。
語(yǔ)法:
BW2 = bwselect(BW1,c,r,n)
BW2 = bwselect(BW1,n)
[BW2,idx] = bwselect(...)
舉例
BW1 = imread('text.tif');
c = [16 90 144];
r = [85 197 247];
BW2 = bwselect(BW1,c,r,4);
imshow(BW1)
figure, imshow(BW2)

47.im2bw
功能:
轉(zhuǎn)換圖像為二進(jìn)制圖像。
語(yǔ)法:
BW = im2bw(I,level)
BW = im2bw(X,map,level)
BW = im2bw(RGB,level)
舉例
load trees
BW = im2bw(X,map,0.4);
imshow(X,map)


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Matlab圖像處理小結(jié)
MATLAB中圖像處理的函數(shù)
matlab 圖像處理函數(shù)
圖像處理函數(shù)及其用法
Pytorch讀取,加載圖像數(shù)據(jù)(一)
OpenCV-Python中沒(méi)有Mat.convertTo函數(shù)怎么辦?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服