| 20 | 1/1 | 返回列表 |
| 查看: 7542 | 回復(fù): 19 | ||||||||||||
| 【獎勵】 本帖被評價(jià)18次,作者wayping增加金幣 13.8 個 | ||||||||||||
[資源]
分享matlab的一些代碼(入門貼)
|
||||||||||||
|
小可在使用matlab的過程中,有些常用的程序經(jīng)常反復(fù)輸入,不甚其煩。相信有的童鞋也遇到過相似的情況,所以總結(jié)了一下,以饗各位。屬于入門貼,歡迎高手交流~~ 1、圖像的讀取 MATLAB中從圖像文件中讀取數(shù)據(jù)用函數(shù)imread(),這個函數(shù)的作用就是將圖像文件的數(shù)據(jù)讀入矩陣中,此外還可以用imfinfo()函數(shù)查看圖像文件的信息(見例1) 2、灰度直方圖及直方圖均衡化 灰度直方圖用于顯示圖像的灰度值分布情況,是數(shù)字圖像處理中最簡單和最實(shí)用的工具。MATLAB中提供了專門繪制直方圖的函數(shù)imhist()。用它可以很簡單的繪制出一幅圖像的灰度直方圖(見例2)。 在圖像處理中,點(diǎn)運(yùn)算是簡單而又重要的一種技術(shù),其中最常用的一種應(yīng)用就是直方圖的均衡化(見例3)。 3、圖像的代數(shù)運(yùn)算 代數(shù)運(yùn)算是指對兩幅輸入圖像進(jìn)行點(diǎn)對點(diǎn)的加、減、乘和除計(jì)算而得到輸出圖像的運(yùn)算。對于相加和相乘的情形,可能不止有兩幅圖像參加運(yùn)算。圖像相加的一個重要應(yīng)用是對同一場景的多幅圖像求平均值。這點(diǎn)被經(jīng)常用來有效地降低加性(additive)隨機(jī)噪聲的影響(見例4) 4、圖像濾波處理 在數(shù)字圖像處理中,常常會遇到圖像中混雜有許多的噪聲。因此,在進(jìn)行圖像處理中,有時(shí)要先進(jìn)行祛除噪聲的工作。最常用的祛除噪聲的方法是用濾波器進(jìn)行濾波處理。MATLAB的圖像處理工具箱里也設(shè)計(jì)了許多的濾波器。如均值濾波器、中值濾波器、維納濾波器等。用戶可以很方便的運(yùn)用一些函數(shù)完成數(shù)字濾波工作。(見例5)。 5、傅立葉變換 傅立葉變換是線性系統(tǒng)分析的一個有力的工具。它在圖像處理,特別是在圖像增強(qiáng)、復(fù)原和壓縮中,扮演著非常重要的作用。實(shí)際中一般采用一種叫做快速傅立葉變換(FFT)的方法,MATLAB中的fft2指令用于得到二維FFT的結(jié)果,ifft2指令用于得到二維FFT逆變換的結(jié)果。(見例6) 6、圖像壓縮 在圖像的變換和壓縮中,常常用到離散余弦變換(DCT)。DCT具有能使圖像的最重要的信息集中在DCT的幾個系數(shù)上的性能。正是基于此,DCT通常應(yīng)用于圖像的壓縮。(見例7) 1、圖像的讀取 MATLAB中從圖像文件中讀取數(shù)據(jù)用函數(shù)imread(),這個函數(shù)的作用就是將圖像文件的數(shù)據(jù)讀入矩陣中,此外還可以用imfinfo()函數(shù)查看圖像文件的信息(見例1) %例1:圖像數(shù)據(jù)及圖像信息的讀取 imfinfo c:\lilizong\boat.bmp %讀取圖像信息 [A,M]=imread('c:\lilizong\boat.bmp'); %圖像數(shù)據(jù)的讀取,將圖像數(shù)據(jù)放入矩陣A中,顏色數(shù)據(jù)放入矩陣M中 imshow(A,M);title('原圖像'); M(:,1)=0; %將顏色數(shù)據(jù)矩陣的一列置零 figure imshow(A,M);title('改變顏色后的圖像') MATLAB還提供了將數(shù)據(jù)寫入一個文件的函數(shù)imwrite以及不同類型文件相互轉(zhuǎn)換的函數(shù),可以參考MATLAB 的幫助文件。 2、灰度直方圖及直方圖均衡化 灰度直方圖用于顯示圖像的灰度值分布情況,是數(shù)字圖像處理中最簡單和最實(shí)用的工具。MATLAB中提供了專門繪制直方圖的函數(shù)imhist()。用它可以很簡單的繪制出一幅圖像的灰度直方圖(見例2)。 %例2:直方圖的顯示 imshow('c:\lilizong\boat.bmp');title('原圖像') %顯示原圖像 A=imread('e:\matlabwork\tuxiang\Girl.bmp','bmp'); figure;imhist(A),title('對應(yīng)直方圖') 在圖像處理中,點(diǎn)運(yùn)算是簡單而又重要的一種技術(shù),其中最常用的一種應(yīng)用就是直方圖的均衡化(見例3)。 %例3:直方圖均衡化 imshow('c:\lilizong\boat1.bmp');title('原圖像') I=imread('c:\lilizong\boat1.bmp'); figure;imhist(I),title('對應(yīng)直方圖') %從得到的直方圖可以看出,圖像的對比度很低,灰度級集中在70-160范圍內(nèi),如果只取 %這個范圍內(nèi)的灰度,并擴(kuò)展到[0,255],則會明顯增強(qiáng)圖像對比度 J=imadjust(I,[70/255 160/255],[]); figure;imshow(J),title('經(jīng)灰度級調(diào)整后的圖') figure;imhist(J),title('灰度級調(diào)整后的直方圖') %MATLAB還提供了histeq函數(shù)(自動直方圖均衡化) K=histeq(I); figure;imshow(K),title('經(jīng)直方圖均衡化后的圖') figure;imhist(K),title('直方圖均衡化后的直方圖') 3、圖像的代數(shù)運(yùn)算 代數(shù)運(yùn)算是指對兩幅輸入圖像進(jìn)行點(diǎn)對點(diǎn)的加、減、乘和除計(jì)算而得到輸出圖像的運(yùn)算。對于相加和相乘的情形,可能不止有兩幅圖像參加運(yùn)算。圖像相加的一個重要應(yīng)用是對同一場景的多幅圖像求平均值。這點(diǎn)被經(jīng)常用來有效地降低加性(additive)隨機(jī)噪聲的影響(見例4) %例4:圖象加噪聲再通過多次相加求平均的方法祛除噪聲 [I,M]=imread('c:\boat.png'); J=imnoise(I,'salt & pepper',0.005); subplot(1,2,1),imshow(I,M),title('原圖象'); subplot(1,2,2),imshow(J,M),title('加噪聲后圖象'); K=zeros(256); for i=1:100 J=imnoise(I,'salt & pepper',0.005); J1=im2double(J); % K=K+J1; K=K+J1; end K=K/100; figure,imshow(K),title('相加求平均后的圖象'); 4、圖像濾波處理 在數(shù)字圖像處理中,常常會遇到圖像中混雜有許多的噪聲。因此,在進(jìn)行圖像處理中,有時(shí)要先進(jìn)行祛除噪聲的工作。最常用的祛除噪聲的方法是用濾波器進(jìn)行濾波處理。MATLAB的圖像處理工具箱里也設(shè)計(jì)了許多的濾波器。如均值濾波器、中值濾波器、維納濾波器等。用戶可以很方便的運(yùn)用一些函數(shù)完成數(shù)字濾波工作。(見例5)。 %例5:用濾波器祛除圖象噪聲(分別用均值濾波,中值濾波,及維納濾波器祛除加入高斯噪聲的圖象) I=imread('C:\boat.png'); J=imnoise(I,'gaussian',0,0.002); %加入高斯噪聲 %進(jìn)行均值濾波 h=fspecial('average',3); %fspecial函數(shù)用于產(chǎn)生預(yù)定義濾波器 I2=uint8(round(filter2(h,I))); %filter2函數(shù)用于圖像濾波,此處h是濾波參數(shù)(均值),I是要處理的圖像 %進(jìn)行中值濾波 I3=medfilt2(J,[3,3]); %medfilt2函數(shù)用于圖像的中值濾波 %進(jìn)行維納濾波 I4=wiener2(J,[3,3]);%進(jìn)行一次維納濾波 I5=wiener2(I4,[3,3]);%進(jìn)行二次維納濾波 subplot(2,3,1),imshow(I),title('原圖象') subplot(2,3,2),imshow(J),title('加噪聲圖象') subplot(2,3,3),imshow(I2),title('均值濾波后圖象') subplot(2,3,4),imshow(I3),title('中值濾波后圖象') subplot(2,3,5),imshow(I4),title('維納濾波后圖象') subplot(2,3,6),imshow(I5),title('兩次維納濾波后圖象') 5、傅立葉變換 傅立葉變換是線性系統(tǒng)分析的一個有力的工具。它在圖像處理,特別是在圖像增強(qiáng)、復(fù)原和壓縮中,扮演著非常重要的作用。實(shí)際中一般采用一種叫做快速傅立葉變換(FFT)的方法,MATLAB中的fft2指令用于得到二維FFT的結(jié)果,ifft2指令用于得到二維FFT逆變換的結(jié)果。(見例6) %例6:近似沖擊函數(shù)的二維快速傅立葉變換(FFT) x=1:99;y=1:99; [X,Y]=meshgrid(x,y); A=zeros(99,99); A(49:51,49:51)=1; B=fft2(A); subplot(1,2,1),imshow(A),xlabel('空域圖象'); subplot(1,2,2),imshow(B),xlabel('時(shí)域圖象'); figure subplot(1,2,1),mesh(X,Y,A),xlabel('空域'),grid on; subplot(1,2,2),mesh(X,Y,abs(B)),xlabel('時(shí)域'),grid on; 6、圖像壓縮 在圖像的變換和壓縮中,常常用到離散余弦變換(DCT)。DCT具有能使圖像的最重要的信息集中在DCT的幾個系數(shù)上的性能。正是基于此,DCT通常應(yīng)用于圖像的壓縮。(見例7) JPEG圖像壓縮算法: 輸入圖像被分成8*8或16*16的小塊,然后對每一小塊進(jìn)行二維DCT(離散余弦變換)變換,變換后的系數(shù)量化、編碼并傳輸; JPEG文件解碼量化了的DCT系數(shù),對每一塊計(jì)算二維逆DCT變換,最后把結(jié)果塊拼接成一個完整的圖像。在DCT變換后舍棄那些不嚴(yán)重影響圖像重構(gòu)的接近0的系數(shù)。 DCT變換的特點(diǎn)是變換后圖像大部分能量集中在左上角,因?yàn)樽笊戏庞吃瓐D像低頻部分?jǐn)?shù)據(jù),右下反映原圖像高頻部分?jǐn)?shù)據(jù)。而圖像的能量通常集中在低頻部分。 %例7:DCT變換用于圖象的壓縮實(shí)例 I=imread('d:\lilizong\test.jpg'); %該圖片在安裝matlab的目錄中找,原圖為灰度圖象 I=im2double(I);%圖像存儲類型轉(zhuǎn)換 T=dctmtx(8);%離散余弦變換矩陣 B=blkproc(I,[8 8],'P1*x*P2',T,T'); %對原圖像進(jìn)行DCT變換 mask=[1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; B2=blkproc(B,[8 8],'P1.*x',mask); %數(shù)據(jù)壓縮,丟棄右下角高頻數(shù)據(jù) I2=blkproc(B2,[8 8],'P1*x*P2',T',T); %進(jìn)行DCT反變換,得到壓縮后的圖像 imshow(I) title('原始圖像') figure; imshow(I2) title('壓縮后的圖像') 應(yīng)用到的函數(shù): I=imread('圖像文件名') :讀取圖像數(shù)據(jù),保存在矩陣I中; imshow(I) :顯示灰度圖像I,其他用法見matlab幫助; I2=im2double(I1) :把圖像數(shù)組I1轉(zhuǎn)換成double精度類型; D=dctmtx(n) :二維離散余弦變換函數(shù),返回n*n離散余弦變換矩陣。 一個n*n的變換矩陣T被定義成: Tpq=1/sqrt(n) ,當(dāng)p=0,0<=q<=M-1; Tpq=sqrt(2/n)*cos[pi*(2q+1)*p/2n] ,當(dāng)1<=p<=M-1,0<=q<=M-1。 B=blkproc(A,[m n],fun,P1,P2...) :塊操作函數(shù)。對圖像A的每個不同的m*n塊應(yīng)用fun函數(shù),P1,P2等為fun函數(shù)參數(shù)。在圖像邊緣用0來擴(kuò)展;只有當(dāng)fun的返回矩陣是m*n矩陣時(shí),B和A的大小才相同。 figure:強(qiáng)制生成一個新的個繪圖窗口; 可以看出,盡管由于85%的DCT系數(shù)被拋棄而使恢復(fù)后的圖像質(zhì)量有所降低,圖像內(nèi)容仍能清晰可辨,達(dá)到了圖像壓縮的目的。 發(fā)表于 @ 2007年04月06日 14:25:00|評論(3)|編輯 新一篇: 部分matlab代碼 | 舊一篇: MATLAB圖像處理命令 logerer 發(fā)表于2008年1月6日 20:43:43 IP:舉報(bào) 不錯不錯,感謝博主。圖片也發(fā)上來就更好了。為什么 (378209553@QQ.com) 發(fā)表于2008年5月28日 0:48:09 IP:舉報(bào) imshow('C:\Documents and Settings\系統(tǒng)維護(hù)\桌面\a.jpg');title('原圖像') I=imread('C:\Documents and Settings\系統(tǒng)維護(hù)\桌面\a.jpg'); figure;imhist(I),title('對應(yīng)直方圖') %從得到的直方圖可以看出,圖像的對比度很低,灰度級集中在70-160范圍內(nèi),如果只取 %這個范圍內(nèi)的灰度,并擴(kuò)展到[0,255],則會明顯增強(qiáng)圖像對比度 J=imadjust(I,[70/255 160/255],[]); figure;imshow(J),title('經(jīng)灰度級調(diào)整后的圖') figure;imhist(J),title('灰度級調(diào)整后的直方圖') %MATLAB還提供了histeq函數(shù)(自動直方圖均衡化) K=histeq(I); figure;imshow(K),title('經(jīng)直方圖均衡化后的圖') figure;imhist(K),title('直方圖均衡化后的直方圖') ??? Error using ==> iptcheckinput Function IMHIST expected its first input, I or X, to be two-dimensional. Error in ==> imhist>parse_inputs at 270 iptcheckinput(a, {'double','uint8','logical','uint16','int16','single'}, ... Error in ==> imhist at 57 [a, n, isScaled, top, map] = parse_inputs(varargin{:}); |
matlab學(xué)習(xí)專輯 | 模擬與仿真 | matlab | matlab |
科研軟件資料 | 數(shù)理基礎(chǔ)收集 | 數(shù)字圖像處理 | 科研相關(guān) |
氧化鋅的例子 | source |
| 20 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 0703化學(xué) +6 | 妮妮ninicgb 2026-03-27 | 6/300 |
|
|---|---|---|---|---|
|
[考研] 一志愿南師大0703化學(xué) 275求調(diào)劑 +4 | Ripcord上岸 2026-03-27 | 4/200 |
|
|
[考研] 085701環(huán)境工程,267求調(diào)劑 +9 | minht 2026-03-26 | 9/450 |
|
|
[考研] 085600,材料與化工321分,求調(diào)劑 +9 | 大饞小子 2026-03-27 | 9/450 |
|
|
[考研] 化學(xué)308分求調(diào)劑 +8 | 你好明天你好 2026-03-23 | 9/450 |
|
|
[考研] 311求調(diào)劑 +7 | lin0039 2026-03-26 | 7/350 |
|
|
[考研] 南昌大學(xué)材料專碩311分求調(diào)劑 +10 | 77chaselx 2026-03-20 | 10/500 |
|
|
[考研] 314求調(diào)劑 +3 | 溪云珂 2026-03-26 | 3/150 |
|
|
[考研] 324求調(diào)劑 +5 | hanamiko 2026-03-26 | 5/250 |
|
|
[考研] 316求調(diào)劑 +5 | 江辭666 2026-03-26 | 5/250 |
|
|
[考研] 325求調(diào)劑 +5 | 李嘉圖·S·路 2026-03-23 | 5/250 |
|
|
[考研]
材料調(diào)劑
5+4
|
想要一壺桃花水 2026-03-25 | 10/500 |
|
|
[考研] 263求調(diào)劑 +6 | yqdszhdap- 2026-03-22 | 10/500 |
|
|
[考研] 考研調(diào)劑 +6 | 來好運(yùn)來來來 2026-03-21 | 7/350 |
|
|
[考研] 材料與化工304求B區(qū)調(diào)劑 +3 | 邱gl 2026-03-25 | 3/150 |
|
|
[考研] 生物技術(shù)與工程 +3 | 1294608413 2026-03-25 | 4/200 |
|
|
[考研] 086003食品工程求調(diào)劑 +6 | 淼淼111 2026-03-24 | 6/300 |
|
|
[考研] 材料專碩找調(diào)劑 +5 | 哈哈哈吼吼吼哈 2026-03-23 | 5/250 |
|
|
[考研]
|
2117205181 2026-03-21 | 8/400 |
|
|
[考研] 330求調(diào)劑0854 +3 | assdll 2026-03-21 | 3/150 |
|