數(shù)學(xué)數(shù)字圖像處理實驗指導(dǎo)書_第1頁
數(shù)學(xué)數(shù)字圖像處理實驗指導(dǎo)書_第2頁
數(shù)學(xué)數(shù)字圖像處理實驗指導(dǎo)書_第3頁
數(shù)學(xué)數(shù)字圖像處理實驗指導(dǎo)書_第4頁
數(shù)學(xué)數(shù)字圖像處理實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)學(xué)數(shù)字圖像處理實驗指導(dǎo)書第1頁/共84頁數(shù)字圖像處理實驗指導(dǎo)書第2頁/共84頁11四月2023實驗一

熟悉圖像處理的Matlab平臺實驗?zāi)康氖煜atlab的工作環(huán)境,掌握Matlab下矩陣的基本操作,熟練掌握Matlab下圖像處理的基本操作(讀、分解、轉(zhuǎn)換、顯示、查看、寫文件)。第3頁/共84頁11四月2023實驗內(nèi)容設(shè)置當(dāng)前工作目錄;讀入一幅RGB圖像,查看圖像信息;將讀入的圖像分解為R、G、B三幅圖像分別保存為三個圖像文件;將讀入的圖像轉(zhuǎn)換成灰度圖像并保存為圖象文件;顯示、查看讀入圖像、分解圖像、轉(zhuǎn)換圖像;第4頁/共84頁11四月2023實驗要求獨(dú)立完成實驗內(nèi)容;記錄每一項實驗內(nèi)容實現(xiàn)的步驟;打印輸出原始圖像、分解圖像、轉(zhuǎn)換圖像;獨(dú)立撰寫實驗報告第5頁/共84頁11四月2023實驗方法、步驟1.設(shè)置當(dāng)前工作目錄打開Matlab,從“文件”菜單選擇“SetPath”,彈出“SetPath”窗體,單擊“AddFolder…”按鈕或“AddwithSubfolders…”按鈕,彈出“瀏覽文件夾”窗口,選擇自己的文件夾添加到當(dāng)前工作目錄中,點擊“確定”,返回到“SetPath”窗體,依次點擊“Save”按鈕、“Close”按鈕,完成當(dāng)前工作目錄的設(shè)置。第6頁/共84頁11四月2023第7頁/共84頁11四月2023實驗方法、步驟2.讀入一幅RGB圖像,查看圖像信息在“Command”窗口的命令提示符“>>”后輸入“I=imread(‘ss.jpg’)命令,讀入RGB圖像“ss.jpg”,數(shù)據(jù)存在“I”矩陣中;在“Command”窗口的命令提示符“>>”后輸入“imfinfo(‘ss.jpg’)命令,顯示圖像“ss.jpg”文件信息。第8頁/共84頁11四月2023第9頁/共84頁11四月2023實驗方法、步驟3.將讀入的圖像分解為R、G、B三幅圖像分別保存為三個圖像文件;在“Command”窗口的命令提示符“>>”后分別輸入“I_R=I”、“I_G=I;、“I_G=I”,拷貝“I”的3個副本分別存入矩陣“I_R”、“I_G”、“I_B”中;用I_R(:,:,2)=0;”、I_R(:,:,3)=0;”、“I_G(:,:,1)=0;”、“I_G(:,:,3)=0;”和“I_B(:,:,1)=0;”、“I_B(:,:,2)=0;”使得“I_R”、“I_G”、“I_B”保留的分別只有R、G、B分量。分別用“imwrite(I_R,’ss_R.jpg’)”、“imwrite(I_R,’ss_G.jpg’)”和“imwrite(I_R,’ss_B.jpg’)”將它們分別寫入“ss_R.jpg”、“ss_G.jpg”和“ss_B.jpg”磁盤文件中。第10頁/共84頁11四月2023實驗方法、步驟4.將讀入的圖像轉(zhuǎn)換成灰度圖像并保存為圖象文件;在“Command”窗口的命令提示符“>>”后分別輸入“I_Gray=rgb2gray(I)”將圖像轉(zhuǎn)變?yōu)榛叶葓D像并存于矩陣“I_Gray”中,用“imwrite(I_Gray,’ss_Gray.jpg’)”將其寫入ss_Gray.jpg”磁盤文件中。第11頁/共84頁11四月2023實驗方法、步驟5.顯示、查看讀入圖像、分解圖像、轉(zhuǎn)換圖像;用imshow()和imview()顯示和查看各圖像;用下面命令序列在一個視窗顯示各圖像:subplot(231);imshow(I);title(‘原始圖像’);subplot(233);imshow(I_Gray);title(‘灰度圖像’);subplot(234);imshow(I_R);title(‘紅色分量‘);subplot(235);imshow(I_G);title(‘綠色分量‘);subplot(236);imshow(I_B);title(‘藍(lán)色分量‘);第12頁/共84頁11四月2023第13頁/共84頁11四月2023思考題Matlab的當(dāng)前工作目錄;Matlab處理圖像時把圖像當(dāng)作什么進(jìn)行的?如何查看RGB圖像的各分量圖像?如何將RGB圖像轉(zhuǎn)換成灰度圖像?第14頁/共84頁11四月2023實驗?zāi)康牧私鈹?shù)字圖像頻域變換的目的,熟悉DFT、DCT變換的頻譜特征及小波變換的特點,掌握數(shù)字圖像FFT、DCT及DWT變換的方法。實驗二

圖像的頻域變換第15頁/共84頁11四月2023實驗內(nèi)容在Matlab下讀入一幅圖像,對其灰度圖作快速傅立葉變換;在Matlab下讀入一幅圖像,對其灰度圖作DCT變換;在Matlab下讀入一幅圖像,對其作DWT分解。第16頁/共84頁11四月2023實驗要求獨(dú)立完成各項實驗內(nèi)容;記錄每一項實驗內(nèi)容實現(xiàn)的步驟;編寫FFT、DCT、DWT變換Matlab程序;打印輸出原始圖像、FFT的頻譜圖、將頻率平面坐標(biāo)原點移至窗口中心的FFT頻譜圖、DCT頻譜圖以及1級小波分解圖像;獨(dú)立撰寫實驗報告第17頁/共84頁11四月2023實驗方法、步驟1.讀入一幅圖像,對其灰度圖作快速傅立葉變換。用imread()函數(shù)讀如工作目錄下的“風(fēng)光壁紙33.jpg”圖像存于I矩陣中,用rgb2gray()函數(shù)將其轉(zhuǎn)換成灰度圖像;用fft2()函數(shù)對其進(jìn)行FFT變換,并將變換得到的傅立葉頻譜存于fft_I矩陣中;用fftshift()函數(shù)將傅立葉頻譜坐標(biāo)原點移至窗口中央并存于sfft_I矩陣中;顯示FFT頻譜圖、移動后的頻譜圖。由于fft_I和sfft_I均為復(fù)數(shù)矩陣,須用abs()函數(shù)求其模,并根據(jù)矩陣元素的特點將其歸一化到0~255之間;用subplot()函數(shù)及imshow函數(shù)在同一窗口下顯示原始圖像、灰度圖像、FFT頻譜圖及移動后的頻譜圖。附:FLY.m文件第18頁/共84頁11四月2023Fly.m文件內(nèi)容%快速傅立葉變換,顯示原始RGB圖像、灰度圖像、FFT頻譜圖functionfly(I)subplot(221)imshow(I);title('原始圖像')I=rgb2gray(I);subplot(222)imshow(I);title('灰度圖像')fft_I=fft2(I);%2-D快速傅立葉變換

A=abs(fft_I);%將頻譜矩陣元素歸一化到0~255A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;subplot(223)imshow(A);title('傅立葉頻譜圖像')sfft_I=fftshift(fft_I);%傅立葉頻譜平面中心移至窗口中心A=abs(sfft_I);%將頻譜矩陣元素歸一化到0~255A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;subplot(224)imshow(A);title('原點移到中心的傅立葉頻譜圖像')第19頁/共84頁11四月2023第20頁/共84頁11四月2023實驗方法、步驟2.讀入一幅圖像,對其灰度圖作DCT變換。用imread()函數(shù)讀如工作目錄下的“顯微煤巖照片.JPG”圖像存于I矩陣中,用rgb2gray()函數(shù)將其轉(zhuǎn)換成灰度圖像;用dct2()函數(shù)對其進(jìn)行DCT變換,并將變換得到的傅立葉頻譜存于dct_I矩陣中;顯示DCT頻譜圖由于dct_I為復(fù)數(shù)矩陣,須用abs()函數(shù)求其模,并根據(jù)矩陣元素的特點將其歸一化到0~255之間;用subplot()函數(shù)及imshow函數(shù)在同一窗口下顯示原始圖像、灰度圖像、DCT頻譜圖附:Lsyx_pp.m文件第21頁/共84頁11四月2023Lsyx_pp.m文件內(nèi)容%DCT變換,顯示原始RGB圖像、灰度圖像、DCT頻譜圖functionlsyx_pp(I)subplot(221)imshow(I);title('原始圖像')I=rgb2gray(I);subplot(223)imshow(I);title('原始灰度圖像')dct_I=dct2(I);A=abs(dct_I);A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;subplot(224)imshow(A);title('離散余弦頻譜圖像')第22頁/共84頁11四月2023第23頁/共84頁11四月2023實驗方法、步驟3.讀入一幅圖像,對其作DWT分解。Matlab下對一幅圖象進(jìn)行小波分解有兩種方法,一是利用Mtlab提供的“小波工具箱”,二是編寫Matlab程序。方法一:點擊“Start”按鈕,選“Toolbox”→“More…”→“Wavelet”→“WaveletMainMenu(wavemenu)”,彈出“WaveletMainMenu”窗體;點擊“Two-Dimensional”框架中的“Wavelet2-d”按鈕,彈出“Wavelet2-d”窗體;第24頁/共84頁11四月2023第25頁/共84頁11四月2023第26頁/共84頁11四月2023實驗方法、步驟點擊“File”菜單,選“Load”→“Image”,選擇要做小波分解的圖像”;從“Wavelet”列表中選擇合適的小波母函數(shù);從“Level”列表中選擇小波分解的級別;點擊“Analyze”按鈕;調(diào)節(jié)各參數(shù);對分解結(jié)果可以保存和輸出。第27頁/共84頁11四月2023第28頁/共84頁11四月2023實驗步驟3.讀入一幅圖像,對其作DWT分解。方法二:讀入進(jìn)行小波分解的圖像,并把它轉(zhuǎn)成灰度圖像,存于一個矩陣中,如:X;用wavedct2函數(shù)對X進(jìn)行分解,該函數(shù)的格式如下:[C,S]=wavedt2(X,N,'wname')用相關(guān)命令輸出各圖像附:Xbfj.m文件第29頁/共84頁11四月2023Xbfj.m文件內(nèi)容%小波圖像分解clearclcX=imread('風(fēng)光壁紙(藍(lán)色主題)8.jpg');subplot(231)imshow(X)title('原始圖像')X=rgb2gray(X);subplot(234)imshow(X)title('原始灰度圖像')%對圖象用2D小波進(jìn)行一次分解[c,s]=wavedec2(X,1,'haar');%提取特征分量和細(xì)節(jié)分量a1=wrcoef2('a',c,s,'haar');h1=wrcoef2('h',c,s,'haar');v1=wrcoef2('v',c,s,'haar');d1=wrcoef2('d',c,s,'haar');

%顯示一次小波分解各分量圖像subplot(232)a1=uint8(a1);imshow(a1)title('一次小波分解特征分量圖像')subplot(235)h1=uint8(h1);imshow(h1)title('一次小波分解水平細(xì)節(jié)分量圖像')subplot(233)v1=uint8(v1);imshow(v1)title('一次小波分解垂直細(xì)節(jié)分量圖像')subplot(236)d1=uint8(d1);imshow(d1)title('一次小波分解對角細(xì)節(jié)分量圖像')第30頁/共84頁11四月2023第31頁/共84頁11四月2023實驗結(jié)果分析對FFT頻譜圖、DCT頻譜圖及小波分解圖做必要分析說明;第32頁/共84頁11四月2023思考題離散傅立葉變換有那些性質(zhì)?這些性質(zhì)說明了什么:從FFT變換得到頻譜圖說明FFT變換在數(shù)字圖像處理方面有何可能的作用?小波變換的優(yōu)點有哪些?在數(shù)字圖像處理方面有何優(yōu)勢?第33頁/共84頁11四月2023實驗?zāi)康牧私鈭D像增強(qiáng)與復(fù)原的體系結(jié)構(gòu);熟悉灰度變換、直方圖修正、圖像平滑、圖像銳化及偽彩色處理在數(shù)字圖像增強(qiáng)方面的作用及各自的特點;掌握圖像增強(qiáng)的灰度變換法、直方圖修正法,掌握圖像平滑、圖像銳化的濾波器設(shè)計方法,掌握圖像的偽彩色處理方法。實驗三

圖像增強(qiáng)與復(fù)原

第34頁/共84頁11四月2023實驗內(nèi)容讀入一幅有明顯明暗缺陷的灰度圖像,分析其直方圖特征,分別用分段灰度線性變換法、直方圖均衡法和圖像灰度調(diào)整法(imadjust)分別進(jìn)行處理;讀入一幅灰度圖像,分別給其加上“乘性噪聲”、“椒鹽噪聲”,然后分別用“均值濾波”、“中值濾波”和“巴特沃斯濾波”對其做平滑處理;第35頁/共84頁11四月2023實驗內(nèi)容讀入一幅灰度圖像,分別用“Sobel算子”、“Laplacian算子”、“梯形濾波器”對其做銳化處理;讀入一幅灰度圖像,分別用“灰度級分層法”、“灰度變換法”和“頻域偽彩色處理法”對其進(jìn)行偽彩色增強(qiáng);讀入一幅圖像,對其進(jìn)行模糊化,然后用“逆濾波法”對其進(jìn)行復(fù)原處理。第36頁/共84頁11四月2023實驗要求獨(dú)立完成各項實驗內(nèi)容;記錄每一項實驗內(nèi)容實現(xiàn)的步驟;編寫“灰度增強(qiáng)”、“平滑”、“銳化”、“偽彩色增強(qiáng)”、“圖像復(fù)原”的Matlab程序;打印輸出經(jīng)“灰度增強(qiáng)”、“平滑”、“銳化”、“偽彩色增強(qiáng)”、“圖像復(fù)原”處理的圖像及各自的原始圖像;獨(dú)立撰寫實驗報告第37頁/共84頁11四月2023實驗方法、步驟1.讀入一幅有明顯明暗缺陷的灰度圖像,分析其直方圖特征,分別用分段灰度線性變換法、直方圖均衡法和圖像灰度調(diào)整法(imadjust)分別進(jìn)行處理;在“資源管理器”下以“縮略圖”的方式瀏覽圖片庫,發(fā)現(xiàn)名為“6_gray.jpg”的圖像明顯整體偏暗,在Matlab下讀入該圖像,用imhist函數(shù)提取該圖像的灰度直方圖(圖3-1)。從該圖像的灰度直方圖可以看出:該圖像大多數(shù)像素的灰度值在140以下,140~240灰度級間象素數(shù)分布均勻,缺少240~255灰度級的象素,將0~255灰度級歸一化到0~1,140對應(yīng)0.55。第38頁/共84頁11四月2023圖3-1第39頁/共84頁11四月2023分段灰度線性變換:根據(jù)上述分析,將原圖像灰度值在0~140采用線性變換到0~200,140~200線性變換到200~255。變換后的圖像及其灰度直方圖見圖3-2。直方圖均衡:在Matlab下用histeq函數(shù)可以對一幅圖像直接進(jìn)行直方圖均衡,對“6_gray.jpg”做直方圖均衡后的圖像及其灰度直方圖見圖3-2。圖像灰度調(diào)整:在Matlab下imadjust函數(shù)用以對圖像的灰度級調(diào)整,

根據(jù)前面分析,將0~140調(diào)整到0~0.55,鑒于imadjust只能對一個灰度區(qū)間進(jìn)行調(diào)整,對原圖像140~255不做調(diào)整。由于原圖像明顯偏暗,這里gamma去<1的數(shù)0.7。調(diào)整后圖像及其灰度直方圖見圖3-2。第40頁/共84頁11四月2023圖3-2第41頁/共84頁%實驗三_1:分段灰度線性變換、%直方圖均衡和圖像灰度調(diào)整clear;I=imread('6_gray.jpg');subplot(2,3,1);imshow(I);title('原始灰度圖像');subplot(2,3,2);imhist(I);title('原始圖像灰度直方圖');%分段灰度線性變換法g0=0;f0=0;g1=200;f1=140;g2=255;f2=255;subplot(2,3,3);X=[f0f1f2];Y=[g0g1g2];plot(X,Y);title('變換線');k1=(g1-g0)/(f1-f0);k2=(g2-g1)/(f2-f1);[mn]=size(I);I=double(I);fori=1:m;forj=1:nif(I(i,j)>=f0)&(I(i,j)<f1)G(i,j)=k1*I(i,j);elseG(i,j)=k2*(I(i,j)-f1)+g1;endendendsubplot(3,3,4);G=uint8(G);imshow(G);title('分段灰度線性變換');%直方圖均衡法法I=uint8(I);J=histeq(I);subplot(2,3,5);imshow(J);title('直方圖均衡圖像');%圖像灰度調(diào)整K=imadjust(I,[00.55],[01],0.7);subplot(2,3,6);imshow(K);title('圖像灰度調(diào)整Low=0,High=0.55gamma=0.7');shiyan_3_1.m第42頁/共84頁11四月2023實驗方法、步驟2.讀入一幅灰度圖像,分別給其加上“乘性噪聲”、“椒鹽噪聲”,然后分別用“均值濾波”、“中值濾波”對其做平滑處理;對“乘性噪聲”圖像進(jìn)行“巴特沃斯濾波”做平滑處理;在Matlab下讀入一幅灰度圖像,I=imread(‘9_gray.jpg‘);分別對其添加“乘性噪聲”、“椒鹽噪聲”。I_noise_salt_pepper=imnoise(I,’salt&pepper’);I_noise_speckle=imnoise(I,’speckle’);對I_noise_salt_pepper和I_noise_speckle用3×3模板做均值濾波

I_noise_salt_pepper_average=filter2(fspecial('average',3),

I_noise_salt_pepper)/255;

I_noise_speckle_average=filter2(fspecial('average',3),

I_noise_speckle)/255;第43頁/共84頁11四月2023對I_noise_salt_pepper和I_noise_speckle用3×3模板做中值濾波

I_noise_salt_pepper_med=medfilt2(I_noise_salt_pepper,[3,3]);I_noise_speckle_med=medfilt2(I_noise_speckle,[3,3]);

巴特沃斯濾波:

首先對添加噪聲的圖像進(jìn)行快速傅立葉變換fft_I_noise_speckle=fft2(double(I_noise_speckle));

移動頻譜坐標(biāo)中心到屏幕中心

fftshift(fft_I_noise_speckle);

設(shè)定截止頻率:Dcut=100;

計算巴特沃斯傳遞函數(shù):

D(u,v)=sqrt(u^2+v^2);

BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/Dcut)^2);進(jìn)行巴特沃斯濾波

BUTTERG=BUTTERH.*fft_I_noise_speckle;

快速傅立葉逆變換

BUTTERfiltered=ifft2(BUTTERG);第44頁/共84頁11四月2023

圖3-3第45頁/共84頁%實驗三_2:對加上“乘性噪聲”、“椒鹽噪聲”%用“均值濾波”、“中值濾波”對其做平滑處理;%對“乘性噪聲”圖像進(jìn)行“巴特沃斯濾波”做平滑處理;clear;[J,map]=imread('18.jpg');I=rgb2gray(J);%添加“椒鹽噪聲”I_noise_salt_pepper=imnoise(I,'salt&pepper');%添加“乘性噪聲”I_noise_speckle=imnoise(I,'speckle');%對I_noise_salt_pepper用3×3模板做均值濾波I_noise_salt_pepper_average=filter2(fspecial('average',3),I_noise_salt_pepper)/255;%對I_noise_speckle用3×3模板做均值濾波I_noise_speckle_average=filter2(fspecial('average',3),I_noise_speckle)/255;%對I_noise_salt_pepper用3×3模板做中值濾波I_noise_salt_pepper_med=medfilt2(I_noise_salt_pepper,[3,3]);%I_noise_speckle用3×3模板做中值濾波I_noise_speckle_med=medfilt2(I_noise_speckle,[3,3]);shiyan_3_2.m第46頁/共84頁%巴特沃斯濾波:%對添加噪聲的圖像進(jìn)行快速傅立葉變換fft_I_noise_salt_pepper=fft2(double(I_noise_salt_pepper));%移動頻譜坐標(biāo)中心到屏幕中心fftshift(fft_I_noise_salt_pepper);%設(shè)定截止頻率:Dcut=100;%計算巴特沃斯傳遞函數(shù):[MN]=size(I);foru=1:Mforv=1:ND(u,v)=sqrt(u^2+v^2);BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/Dcut)^2);endend%進(jìn)行巴特沃斯濾波BUTTERG=BUTTERH.*fft_I_noise_salt_pepper;%快速傅立葉逆變換BUTTERfiltered=ifft2(BUTTERG);第47頁/共84頁subplot(3,3,1);imshow(J);title('原始圖像');subplot(3,3,2);imshow(I);title('灰度圖像');subplot(3,3,3);imshow(I_noise_salt_pepper);title('加“椒鹽噪聲”(salt&pepper)圖像');subplot(3,3,4);imshow(I_noise_speckle);title('加“乘性噪聲”(speckle)圖像');subplot(3,3,5);imshow(I_noise_salt_pepper_average);title('“椒鹽噪聲”圖像3×3模板均值濾波');subplot(3,3,6);imshow(I_noise_salt_pepper_med);title('“椒鹽噪聲”圖像3×3模板中值濾波');subplot(3,3,7);imshow(I_noise_speckle_average);title('“乘性噪聲”圖像3×3模板均值濾波');subplot(3,3,8);imshow(I_noise_speckle_med);title('“乘性噪聲”圖像3×3模板中值濾波');subplot(3,3,9);imshow(BUTTERfiltered,map);title('“椒鹽噪聲”圖像經(jīng)“巴特沃斯濾波”');第48頁/共84頁11四月2023實驗方法、步驟3.讀入一幅灰度圖像,分別用“Sobel算子”、“Laplacian算子”、“梯形濾波器”對其做銳化處理;Matlab下在空間域?qū)D像做銳化處理有兩種方法,對于Matlab提供的算子,可以直接用濾波的方法,對于知道模板矩陣的,也可采取“模板-卷積”的方法。Matlab提供了“Sobel算子”,這里采取濾波的方法,對“Laplacian算子,其模板矩陣為[010,1-41,010],這里采取“模板-卷積”的方法。Matlab下在頻率域?qū)D像做銳化處理方法與平滑類似。第49頁/共84頁%實驗三_3:%用“Sobel算子”、“Laplacian算子”、%“梯形濾波器”對圖像做銳化處理clear;[Imap]=imread('BANNER.jpg');subplot(2,2,1);imshow(I,map);title('原始圖像');I=rgb2gray(I);subplot(2,2,2);imshow(I,map);title('灰度圖像');%用“Sobel算子”對圖像做銳化處理H=fspecial('sobel');J=filter2(H,I);subplot(2,3,4);imshow(J);title('Sobel算子銳化');%用“Laplacian算子”對圖像做銳化處理I=double(I);h=[010,1-41,010]J=conv2(I,h,'same');subplot(2,3,5);imshow(J);title('Laplacian算子銳化');%“梯形濾波器”對圖像做銳化處理[MN]=size(I);F=fft2(double(I));fftshift(F);D0=200;D1=100;foru=1:Mforv=1:ND(u,v)=sqrt(u^2+v^2);ifD(u,v)<D1TRAPEH(u,v)=0;elseifD(u,v)<=D0TRAPEH(u,v)=(D(u,v)-D1)/(D0-D1);elseTRAPEH(u,v)=1;endendendTRAPEG=TRAPEH.*F;TRAPEfiltered=ifft2(TRAPEG);subplot(2,3,6);imshow(TRAPEfiltered,map);title('梯形高通濾波');shiyan_3_3.m第50頁/共84頁11四月2023圖3-4第51頁/共84頁實驗方法、步驟4.讀入一幅灰度圖像,分別用“灰度級分層法”、“灰度變換法”和“頻域偽彩色處理法”對其進(jìn)行偽彩色增強(qiáng);“灰度級分層法”:Matlab下用grayslice函數(shù)對灰度圖像進(jìn)行分層,在顯示該分層圖像時指定顏色模型,就可以對該灰度圖像進(jìn)行彩色顯示,從而達(dá)到偽彩色增強(qiáng)的目的;%Matlab中灰度分層法偽彩色圖象的實現(xiàn)clear;I=imread('1.jpg');imshow(I);title('原始灰度圖像');I=rgb2gray(I);X=grayslice(I,24);figure,imshow(X,copper(24));title('24級灰度分層copper(24)偽彩色圖像');第52頁/共84頁11四月2023圖3-5第53頁/共84頁11四月2023“灰度變換法”:讀入一幅灰度圖像,計算圖像的尺寸,根據(jù)圖像尺寸設(shè)定循環(huán),逐個像素進(jìn)行灰度到彩色的轉(zhuǎn)換(梯形法)。當(dāng)像素的灰度值<1/4最高灰度級(L=256)時,將其歸到G(綠色)位平面,并用線性拉伸的方法映射到綠色的0~255區(qū)間;當(dāng)像素的灰度值>1/4最高灰度級,而<1/2最高灰度級時,將其歸到B(蘭色)位平面,并用線性拉伸的方法映射到綠色的0~255區(qū)間;當(dāng)某像素的灰度值>1/2最高灰度級,<3/4最高灰度級時,將其歸到R(紅色)位平面,并用線性拉伸的方法映射到綠色的0~255區(qū)間;當(dāng)某像素的灰度值>3/4最高灰度級時,將其歸到G(綠色)位平面,并用線性拉伸的方法映射到綠色的0~255區(qū)間;將三個位平面合成為一幅彩色圖像。第54頁/共84頁%Matlab中灰度變換法偽彩色圖象的實現(xiàn)clear;I=imread('高對比度:精美高清風(fēng)光壁紙5.jpg');%I=rgb2gray(I);subplot(1,2,1);imshow(I);title('原始灰度圖像');I=double(I);[MN]=size(I);L=256;fori=1:Nforj=1:MifI(j,i)<L/4R(j,i)=0;G(j,i)=4*I(j,i);B(j,i)=L;elseifI(j,i)<=L/2R(j,i)=0;G(j,i)=L;B(j,i)=-4*I(j,i)+2*L;

elseifI(j,i)<=3*L/4R(j,i)=4*I(j,i)-2*L;G(j,i)=L;B(j,i)=-0;elseR(j,i)=L;G(j,i)=-4*I(j,i)+4*L;B(j,i)=-0;endendendOUT=zeros(M,N,3);OUT(:,:,1)=R;OUT(:,:,2)=G;OUT(:,:,3)=B;OUT=uint8(OUT);subplot(1,2,2);imshow(OUT);title('灰度分級偽彩色圖像');第55頁/共84頁11四月2023圖3-6第56頁/共84頁11四月2023“頻域偽彩色處理法”:讀入一幅灰度圖像,進(jìn)行FFT變換,分別進(jìn)行低通濾波、帶通濾波、高通濾波,得到三個獨(dú)立的頻率分量,人為地將它們分別歸屬為R、G、B分量,再分別將R、G、B分量進(jìn)行快速傅立葉逆變換,得到R、G、B三個位平面,最后將三個位平面合成為一幅偽彩色圖像。第57頁/共84頁%Matlab頻域偽彩色圖象的實現(xiàn)clear;I=imread('風(fēng)景04.jpg');I=rgb2gray(I);I=imadjust(I);subplot(1,2,1);imshow(I);title('原始灰度圖像');I=double(I);[MN]=size(I);F=fft2(I);fftshift(F);Red_cut=5;Green_cut=205;Blue_center=100;Blue_width=200;Blue_u0=10.5;Blue_v0=10.3;第58頁/共84頁foru=1:Mforv=1:ND(u,v)=sqrt(u^2+v^2);Red_L(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/Red_cut)^2);Green_H(u,v)=1/(1+(sqrt(2)-1)*(Green_cut/D(u,v))^2);Blue_D(u,v)=sqrt((u-Blue_u0)^2+(v-Blue_v0)^2);Blue_H(u,v)=1-1/(1+Blue_D(u,v)*Blue_width/((Blue_D(u,v))^2-(Blue_center)^2)^2);endEndRed=Red_L.*F;Red_color=ifft2(Red);Green=Green_H.*F;Green_color=ifft2(Green);Blue=Blue_H.*F;Blue_color=ifft2(Blue);Red_color=real(Red_color)/256;Red_color=imadjust(Red_color);Green_color=real(Green_color)/256;Green_color=imadjust(Green_color);Blue_color=real(Blue_color)/256;Blue_color=imadjust(Blue_color);OUT=zeros(M,N,3);OUT(:,:,1)=Red_color;OUT(:,:,2)=Green_color;OUT(:,:,3)=Blue_color;OUT=abs(OUT);subplot(1,2,2);imshow(OUT);title('頻率域偽彩色圖像');第59頁/共84頁11四月2023圖3-7第60頁/共84頁11四月2023實驗方法、步驟5.讀入一幅圖像,對其進(jìn)行模糊化,然后用“逆濾波法”對其進(jìn)行復(fù)原處理。一幅質(zhì)量改進(jìn)或退化的圖像可以近似地用方程g=Hf+n表示,其中g(shù)為圖像,H為變形算子,又稱點擴(kuò)散函數(shù)(PSF),f為原始的真實圖像,n為附加噪聲,它在圖像捕獲過程中產(chǎn)生并且使圖像質(zhì)量下降。Matlab工具中有4個圖像恢復(fù)函數(shù):

deconvwnr:用Wiener濾波器實現(xiàn)圖像恢復(fù)

deconvreg:用regularized濾波器實現(xiàn)圖像恢復(fù)

deconvlucy:用Lucy-Richardson算法實現(xiàn)圖像恢復(fù)

deconvblind:用Blind去卷積算法實現(xiàn)圖像恢復(fù) 這4個函數(shù)都將PSF和模糊圖像作為主要變量。第61頁/共84頁11四月2023deconvwnr

函數(shù)求取最小二乘解,deconvreg函數(shù)求取有約束的最小二乘解,可以設(shè)置對輸出圖像的約束。使用這些函數(shù)中的任何一個,都應(yīng)提供一些與噪聲相關(guān)的信息來減少恢復(fù)過程中可能出現(xiàn)的噪聲擴(kuò)大。deconvlucy函數(shù)實現(xiàn)了一個加速衰減的Lucy-Richardson算法。使用該函數(shù)不需要提供有關(guān)模糊圖像中附加噪聲的信息。deconvblind函數(shù)用盲去卷積算法,它在不知道PSF的情況下進(jìn)行圖像恢復(fù)。調(diào)用該函數(shù)時,將PSF的初值作為一個變量進(jìn)行傳遞。該函數(shù)不僅返回一個修復(fù)后的圖像,還返回一個修復(fù)后的PSF。第62頁/共84頁11四月2023deconvwnr函數(shù)求取最小二乘解,deconvreg函數(shù)求取有約束的最小二乘解,可以設(shè)置對輸出圖像的約束。使用這些函數(shù)中的任何一個,都應(yīng)提供一些與噪聲相關(guān)的信息來減少恢復(fù)過程中可能出現(xiàn)的噪聲擴(kuò)大。deconvlucy函數(shù)實現(xiàn)了一個加速衰減的Lucy-Richardson算法。使用該函數(shù)不需要提供有關(guān)模糊圖像中附加噪聲的信息。deconvblind函數(shù)用盲去卷積算法,它在不知道PSF的情況下進(jìn)行圖像恢復(fù)。調(diào)用該函數(shù)時,將PSF的初值作為一個變量進(jìn)行傳遞。該函數(shù)不僅返回一個修復(fù)后的圖像,還返回一個修復(fù)后的PSF。第63頁/共84頁I=imread('31.jpg');%讀入原始圖像IPSF=fspecial('motion',30,10);%生成點擴(kuò)散函數(shù)MF=imfilter(I,PSF,'circular');%用點擴(kuò)散函數(shù)實現(xiàn)圖像模糊(退化)noise=imnoise(zeros(size(I)),'gaussian');%產(chǎn)生高斯噪聲INITPSF=ones(size(MF));J=deconvwnr(MF,PSF);K=deconvreg(MF,PSF);M=deconvblind(MF,INITPSF,3);subplot(2,2,1);imshow(I);title('原始圖象');subplot(2,2,2);imshow(MF);title('運(yùn)動模糊圖象');subplot(2,3,4);imshow(J);title('維納逆濾波圖象');subplot(2,3,5);imshow(K);title('拉格郎日逆濾波圖象');subplot(2,3,6);imshow(M);title('Blind逆濾波圖象');第64頁/共84頁11四月2023圖3-8第65頁/共84頁11四月2023實驗結(jié)果分析1.比較分段灰度線性變換法、直方圖均衡法和圖像灰度調(diào)整法(imadjust)對灰度圖像處理的效果,分析各自的優(yōu)缺點;2.比較“均值濾波”、“中值濾波”及“巴特沃斯濾波”對圖像平滑處理的效果,分析各自的優(yōu)缺點;3.比較“Sobel”、“Laplacian”、“梯形濾波器”對圖像做銳化處理的效果,分析各自的優(yōu)缺點;4.分析“灰度級分層法”、“灰度變換法”和“頻域偽彩色處理法”對圖像進(jìn)行偽彩色增強(qiáng)分析各自的優(yōu)缺點及各自適用在什么情況下;第66頁/共84頁11四月2023思考題灰度變換的目的是什么?有哪些實現(xiàn)方法?什么是圖像平滑?圖像平滑的方法有哪些?圖像銳化的目的是什么?有哪些方法可以實現(xiàn)?頻域低通濾波的原理是什么?什么是同態(tài)濾波?偽彩色處理的方法有哪些?逆濾波復(fù)原的基本原理是什么?第67頁/共84頁11四月2023實驗?zāi)康牧私獠逯颠\(yùn)算常用的方法及其在圖像幾何變換中特點,熟悉圖像代數(shù)變換與幾何變換的原理、作用、特點;掌握圖像算術(shù)運(yùn)算、幾何運(yùn)算的方法。實驗四

圖像的代數(shù)變換與幾何變換第68頁/共84頁11四月2023實驗內(nèi)容1.讀入兩幅圖像,對它們分別做+、-、×、/運(yùn)算,分析處理結(jié)果;2.讀入一幅圖像,對其進(jìn)行水平平移、垂直平移50像素(圖像擴(kuò)大);3.讀入一幅圖像,對其進(jìn)行水平轉(zhuǎn)置、垂直轉(zhuǎn)置、對角轉(zhuǎn)置;4.讀入一幅圖像,對其旋轉(zhuǎn)操作;5.讀入一幅圖像,對其進(jìn)行等比例、不等比例縮放;6.讀入一幅圖像,對其進(jìn)行水平錯切、垂直錯切;第69頁/共84頁11四月2023實驗要求1.獨(dú)立完成各項實驗內(nèi)容;2.記錄每一項實驗內(nèi)容實現(xiàn)的步驟;3.編寫“平移”、“鏡像”、“旋轉(zhuǎn)”、“縮放”、“錯切”的Matlab程序;4.打印輸出“算數(shù)變換”、“幾何變換”前后的圖像;5.獨(dú)立撰寫實驗報告第70頁/共84頁11四月2023實驗方法、步驟1.讀入兩幅圖像,對它們分別做+、-、×、/運(yùn)算,分析處理結(jié)果;+運(yùn)算:在matlab下可以用“+”運(yùn)算符(注意溢出問題),也可以用“imadd”函數(shù)實現(xiàn)。I=imread('rice.png');J=imread('cameraman.tif');K=imadd(I,J);figure,imshow(K);L=double(I)+double(J);figure,imshow(uint8(L));-運(yùn)算:在matlab下可以用“-”運(yùn)算符(注意溢出問題),“imsubtract”函數(shù)(注意節(jié)段問題)和imabsdiff函數(shù)實現(xiàn)。 I=imread('rice.png');J=imread('cameraman.tif');K=imsubtract(I,J);figure,imshow(K);L=imabsdiff(I,J);figure,imshow(L);M=double(I)-double(J);figure,imshow(uint8(L));第71頁/共84頁11四月2023×運(yùn)算:在matlab下可以用“

×”運(yùn)算符逐像素進(jìn)行,也可以“immultiply”函數(shù),兩種方法都要注意溢出問題。%摳圖clear;I=imread('SS.JPG');subplot(1,3,1);imshow(I);title('圖像1');I=double(I);J=imread('SSBW.jpg');subplot(1,3,2);imshow(J);title('圖像2');J=double(J);[mnl]=size(I);MULT=zeros(m,n,l);fori=1:lforj=1:nfork=1:mMULT(k,j,i)=I(k,j,i).*J(k,j,i);endendendmax_mult=max(max(max(MULT)));min_mult=min(min(min(MULT)));fori=1:lforj=1:nfork=1:mMULT(k,j,i)=MULT(k,j,i).*(255/(max_mult-min_mult));endendendresult_im=uint8(MULT);subplot(1,3,3);imshow(result_im);title('圖像1×圖像2');第72頁/共84頁11四月2023/運(yùn)算:在matlab下可以用“

/”運(yùn)算符實現(xiàn),也可以“imdivide”函數(shù)實現(xiàn)。clear;I=imread('18.jpg');JJ=rgb2gray(I);J(:,:,1)=JJ;J(:,:,2)=JJ;J(:,:,3)=JJ;I_LS=double(I);J_LS=double(J);L=(imdivide(I_LS,J_LS));subplot(2,2,1);imshow(I);title('圖像1');subplot(2,2,2);imshow(J);title('圖像2');subplot(2,1,2);imshow(L);第73頁/共84頁11四月2023實驗方法、步驟2.讀入一幅圖像,對其進(jìn)行水平平移、垂直平移50像素(圖像擴(kuò)大); 方法一:%圖像平移functionoutImage=immove(inImage,Tx,Ty)outImage=zeros(size(inImage));Tx=fix(Tx);Ty=fix(Ty);[m,n,l]=size(inImage);if(Tx<0&Ty<0)outImage(1:m-abs(Tx),1:n-abs(Ty),:)=inImage(abs(Tx)+1:m,abs(Ty)+1:n,:);elseif(Tx<0&Ty>0)outImage(1:m-abs(Tx),Ty+1:n,:)=inImage(abs(Tx)+1:m,1:n-abs(Ty),:);elseif(Tx>=0&Ty>=0)outImage(Tx+1:m,Ty+1:n,:)=inImage(1:m-Tx,1:n-Ty,1:l);elseoutImage(Tx+1:m,1:n-abs(Ty),:)=inImage(1:m-Tx,abs(Ty)+1:n,:);endsubplot(1,2,1);imshow(inImage);title('原始圖像');subplot(1,2,2);imshow(uint8(outImage));title('平移圖像');第74頁/共84頁11四月2023實驗方法、步驟2.讀入一幅圖像,對其進(jìn)行水平平移、垂直平移50像素(圖像擴(kuò)大);

方法二:用translate、imdilate函數(shù)

%圖像平移clear;I=imread('ss.jpg');se=translate(strel(1),[5050]);J=imdilate(I,se);subplot(1,2,1)imshow(I),title('原始圖像')subplot(1,2,2)imshow(J);title('平移圖像');第75頁/共84頁11四月2023實驗方法、步驟3.讀入一幅圖像,對其進(jìn)行水平、垂直、對角轉(zhuǎn)置;%圖像鏡像變換clear;I=double(imread('9.jpg'));SIZE=size(I);%水平鏡像I_flip_LR(1:SIZE(1),1:SIZE(2),:)=I(1:SIZE(1),SIZE(2):-1:1,:);%垂直鏡像I_flip_UD(1:SIZE(1),1:SIZE(2),:)=I(SIZE(1):-1:1,1:SIZE(2),:);%對角鏡像I_flip_LR_UD(1:SIZE(1),1:SIZE(2),:)=I(SIZE(1):-1:1,SIZE(2):-1:1,:);subplot(2,2,1)imshow(uint8(I));title('原始圖像');subplot(2,2,2)imshow(uint8(I_flip_LR));title('水平鏡像');subplot(2,2,3)imshow(uint8(I_flip_UD));title('垂直鏡像');subplot(2,2,4)imshow(uint8(I_flip_LR_UD));title('對角鏡像');第76頁/共84頁11四月2023實驗方法、步驟4.讀入一幅圖像,對其旋轉(zhuǎn)操作;

方法一%Matlab圖像旋轉(zhuǎn)旋轉(zhuǎn)functionim_rotate(Image,Angle)%Image為位圖數(shù)據(jù)[X,Y,n]=size(Image);%X,Y為其行列數(shù)%計算四個角點的新坐標(biāo),確定旋轉(zhuǎn)后的顯示區(qū)域LeftTop(1,1)=-(Y-1)*sin(Angle);LeftTop(1,2)=(Y-1)*cos(Angle);LeftBottom(1,1)=0;LeftBottom(1,2)=0;RightTop(1,1)=(X-1)*cos(Angle)-(Y-1)*sin(Angle);RightTop(1,2)=(X-1)*sin(Angle)+(Y-1)*cos(Angle);RightBottom(1,1)=(X-1)*cos(Angle);RightBottom(1,2)=(X-1)*sin(Angle);%計算顯示區(qū)域的行列數(shù)Xnew=max([LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)])-min([LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)]);Ynew=max([LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)])-min([LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)]);%分配新顯示區(qū)域矩陣ImageNew=zeros(round(Xnew),round(Ynew),n)+127;第77頁/共84頁11四月2023%計算原圖像各像素的新坐標(biāo)forindexX=0:(X-1)forindexY=0:(Y-1)fori=1:nImageNew(round(indexX*cos(Angle)-indexY*sin(Angle))+round(abs(min([LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)])))+1,1+round(indexX*sin(Angle)+indexY*cos(Angle))+round(abs(min([LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)]))),i)=Image(indexX+1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論