第一篇:數(shù)字圖像處理上機(jī)作業(yè)
數(shù)字圖像處理上機(jī)實(shí)驗(yàn)題
一、產(chǎn)生右圖所示圖像 f1(m,n),其中圖像大小為256×256,中間亮條為128×32,暗處=0,亮處=100。對(duì)其進(jìn)行 FFT:
1、屏顯示原圖 f1(m,n)和FFT(f1)的幅度譜圖;
2、令f2(m,n)=(-1)^(m+n)*f1(m,n),重復(fù)以上過(guò)程,比較二者幅度譜的異同,簡(jiǎn)述理由;
3、若將f2(m,n)順時(shí)針旋轉(zhuǎn) 90 度得到f3(m,n),試顯示 FFT(f3)的幅度譜,并與 FFT(f2)的幅度譜進(jìn)行比較;
4、若將f1(m,n)順時(shí)針旋轉(zhuǎn) 90 度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),試顯示 FFT(f5)的幅度譜,并指出其與 FFT(f1)和FFT(f4)的關(guān)系;
5、若令f6(m,n)=f2(m,n)+f3(m,n),試顯示 FFT(f6)的幅度譜,并指出其與 FFT(f 2)和FFT(f3)的關(guān)系,比較 FFT(f6)和FFT(f5)的幅度譜。
代碼
f1=zeros(256,256);
for i =64:1:191 for j = 112:1:143 f1(i,j)= 100;
end
end
f2 = fft2(f1);
%f2(m,n)= f3
f3 =((-1)^(i+j))*f1;f4 = fft2(f3);
%f3(m,n)= f5
f5 = imrotate(f3,90,'bilinear');f6 = fft2(f5);
%f4(m,n)= f7
f7 = imrotate(f1,90,'bilinear');f8 = fft2(f7);
%f5(m,n)= f8 f9 = f1 + f7;f10 = fft2(f9);
%f6(m,n)= f2(m,n)+f3(m,n)f11 = f3 + f5;f12 = fft2(f11);
figure(1)subplot(1,2,1);imshow(abs(f1));title('原圖f1');subplot(1,2,2);imshow(abs(f2));title('幅度譜fft2(f1)');figure(2)subplot(2,2,1)imshow(abs(f1));title('原圖f1')subplot(2,2,2)imshow(abs(f2));title('幅度譜fft2(f1)');subplot(2,2,3);imshow(abs(f3))title('變換譜f2');subplot(2,2,4);imshow(abs(f4));title('幅度譜fft2(f2)');figure(3)subplot(2,2,1)imshow(abs(f3))title('變換譜f2');subplot(2,2,2);imshow(abs(f4));title('幅度譜fft2(f2)');subplot(2,2,3);imshow(abs(f5))title('變換譜f3');subplot(2,2,4);imshow(abs(f6));title('幅度譜fft2(f3)');figure(4)subplot(3,2,1);imshow(f7);
title('f1旋轉(zhuǎn)圖f4');subplot(3,2,2);imshow(abs(f8));title('幅度譜fft2(f4)');subplot(3,2,3);imshow(f9);
title('f5(m,n)=f1+f4');subplot(3,2,4);imshow(abs(f10));title('幅度譜fft2(f5)');subplot(3,2,5)imshow(abs(f1));title('原圖f1');subplot(3,2,6);imshow(abs(f2));title('幅度譜fft2(f1)');figure(5)subplot(3,2,1)imshow(abs(f3))title('變換譜f2');subplot(3,2,2);imshow(abs(f4));title('幅度譜fft2(f2)');subplot(3,2,3);imshow(abs(f5))title('變換譜f3');subplot(3,2,4);imshow(abs(f6));title('幅度譜fft2(f3)');subplot(3,2,5)imshow(abs(f11))title('變換譜f6=f2+f3');subplot(3,2,6);imshow(abs(f12));title('幅度譜fft2(f6)');
figure(6)subplot(2,2,1);imshow(f9);
title('f5(m,n)=f1+f4');subplot(2,2,2);imshow(abs(f10));title('幅度譜fft2(f5)');subplot(2,2,3)imshow(abs(f11))
title('變換譜f6(m,n)=f2+f3');subplot(2,2,4);imshow(abs(f12));title('幅度譜fft2(f6)');
結(jié)果
分析
2、F2(m,n)與F1(m,n)幅度值相同,f2(m,n)=(-1)^(m+n)*f1(m,n)中,并未改變幅值。
3、FFT(f2)比FFT(f3)幅值大。
4、f5=f1+f4,即幅值相加。
5、f6=f2+f3,即幅值相加。
二、產(chǎn)生教材 104 頁(yè)題圖 4.18(右圖)所示的二值圖像(白為1,黑為0),編程實(shí)現(xiàn)習(xí)題4.18 所要求的處理(3*3 的平均濾波和中值濾波)功能(圖像四周邊界不考慮,處理結(jié)果按四舍五入仍取(0或1),顯示處理前后的圖像,比較其異同。
代碼
I=[ 1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;1,0,1,0,1,0,1,0;0,1,0,1,0,1,0,1;];J=imhist(I,2);
K=filter2(fspecial('average',3),I);K1=round(K);J1=imhist(K1,2);K2=medfilt2(I);J2=imhist(K2,2);
figure(1)subplot(2,2,1)imshow(I);title('原圖像');subplot(2,2,2)imshow(J);
title('原圖像直方圖');subplot(2,2,3)imshow(K1);
title('3*3領(lǐng)域平均');subplot(2,2,4)imshow(J1);
title('領(lǐng)域平均圖像直方圖')figure(2)subplot(2,2,1)imshow(I);title('原圖像');subplot(2,2,2)imshow(J);
title('原圖像直方圖');subplot(2,2,3)imshow(K2);title('中值濾波');subplot(2,2,4)imshow(J2);
title('中值濾波圖像直方圖')
結(jié)果
三、產(chǎn)生教材 104 頁(yè)題圖 4.16 所示的灰度圖像(白為255,黑為0),分別加入高斯白噪聲和椒鹽噪聲,再分別進(jìn)行 3′ 3 的平均濾波和中值濾波,顯示原圖像、加噪圖像和濾波結(jié)果圖像,并比較四種濾波結(jié)果。
代碼
f=zeros(256,256);for i =23:1:23
3for j=28:1:35 f(i,j)=255;
end
for j=52:1:59 f(i,j)=255;
end
for j=76:1:83 f(i,j)=255;
end
for j=100:1:107 f(i,j)=255;
end
for j=124:1:131 f(i,j)=255;
end
for j=148:1:155 f(i,j)=255;
end
for j=172:1:179 f(i,j)=255;
end
for j=196:1:203 f(i,j)=255;
end
for j=220:1:227 f(i,j)=255;
end end
g=imnoise(f,'gaussian',0.2);s=imnoise(f,'salt & pepper',0.2);k1=filter2(fspecial('average',3),g);G1=round(k1);G2=medfilt2(g);
k2=filter2(fspecial('average',3),s);S1=round(k2);S2=medfilt2(s);
figure(1)imshow(f)
title('?-ê?í???');figure(2)subplot(3,2,1)imshow(g)
title('???1í???');subplot(3,2,2)imshow(s)
title('?·??í???');subplot(3,2,3)imshow(G1)
title('???ù??2¨???1í???');subplot(3,2,5)imshow(G2)
title('?D?μ??2¨???1í???');subplot(3,2,4)imshow(S1)
title('???ù??2¨?·??í???');subplot(3,2,6)imshow(S2)
title('?D?μ??2¨?·??í???');
結(jié)果
四、對(duì)某一灰度圖像,進(jìn)行如下處理:
(1)分別利用 Roberts、Prewitt和Sobel 邊緣檢測(cè)算子進(jìn)行邊緣檢測(cè);
(2)將Roberts、Prewitt和Sobel 邊緣檢測(cè)算子修改為銳化算子,對(duì)原圖像進(jìn)行銳化,同屏顯示原圖像、邊緣檢測(cè)結(jié)果和銳化后圖像,說(shuō)明三者之間的關(guān)系。
代碼
f1=imread('C:UsershpPictures1.jpg');f2=rgb2gray(f1);k1=edge(f2,'Roberts');k2=edge(f2,'Prewitt');k3=edge(f2,'Sobel');
k4=filter2(fspecial('Prewitt'),f2);k5=filter2(fspecial('Prewitt'),f2);k6=filter2(fspecial('Sobel'),f2);
figure(1)subplot(4,2,1)imshow(f1);title('yuanshi');subplot(4,2,2)imshow(f2);title('huidu');subplot(4,2,3)imshow(k1);title('Roberts');subplot(4,2,5)imshow(k2);title('Prewitt');subplot(4,2,7)imshow(k3);title('Sobel');subplot(4,2,4)imshow(k4);title('log');subplot(4,2,6)imshow(k5);title('Prewitt');subplot(4,2,8)imshow(k6);title('Sobel');
結(jié)果
二值化。
五、編程實(shí)現(xiàn)教材 214 頁(yè)所給圖像門限化分割的迭代閾值算法,實(shí)現(xiàn)對(duì)某一灰度圖像的代碼
f1=imread('C:UsershpPictures11.jpg');f2=rgb2gray(f1);f3=f2;
zm=max(f2(:));zi=min(f2(:));k=2;
T(k)=(zm+zi)/2;while T(k)~=T(k-1);r1=find(f2<=T(k));r2=find(f2>T(k));k=k+1;
T(k)=(mean(f2(r1))+mean(f2(r2)))/2;end
r3=find(f3<=T(k));r4=find(f3>T(k));f3(r3)=0;f3(r4)=255;
figure(1)subplot(221)imshow(f1)title('原始圖像');subplot(222)imshow(f2)title('灰度圖像');subplot(223)imshow(f3)
title('迭代閾值算法二值化');
結(jié)果
心得體會(huì)
通過(guò)此次作業(yè)讓我明白了很多,實(shí)際操作起來(lái)往往比理論所想的要復(fù)雜很多。當(dāng)然,在課設(shè)的進(jìn)行過(guò)程中,我還是遇到了不少問(wèn)題。例如,起初由于我對(duì)句柄使用以及一些函數(shù)使用的不恰當(dāng)。隨著課設(shè)的進(jìn)行,對(duì)matlab的的熟悉度逐步加深。
總體來(lái)說(shuō),此次的課程設(shè)計(jì),還是較為滿意的。它不但鞭策著我去鞏固matlab的基礎(chǔ)理論知識(shí),還提高了我對(duì)matlab的實(shí)際操作運(yùn)用,使得理論與實(shí)踐相結(jié)合,為進(jìn)一步學(xué)習(xí)matlab打下堅(jiān)實(shí)的基礎(chǔ);同時(shí),在實(shí)踐的工程中,也讓我體會(huì)到一種努力付出并得到回報(bào)的滿足感覺(jué)。
第二篇:數(shù)字圖像處理上機(jī)報(bào)告
練習(xí)一 常用MATLAB圖像處理命令
一、練習(xí)目的
1、熟悉并掌握MATLAB工具的使用;
2、實(shí)現(xiàn)圖像的讀取、顯示、代數(shù)運(yùn)算和簡(jiǎn)單變換。
二、練習(xí)環(huán)境
Windows操作系統(tǒng)
Matlab 6.5或以上應(yīng)用軟件
三、練習(xí)內(nèi)容
1、圖像文件的讀寫(xiě)
(1)imread函數(shù)用來(lái)實(shí)現(xiàn)圖像文件的讀取。輸入以下程序:
A=imread('文件名.擴(kuò)展名');%用imread函數(shù)來(lái)讀入圖像 注:設(shè)置路徑 imshow(A);%用imshow函數(shù)來(lái)顯示圖像 得到的結(jié)果如圖:
(2)imfinfo函數(shù)用來(lái)查詢圖像文件信息。輸入以下程序:
info=imfinfo('文件名.擴(kuò)展名');% 用imfinfo函數(shù)查詢圖像文件信息 得到: info =
Filename: '文件名.擴(kuò)展名'
(4)imshow函數(shù)用來(lái)顯示圖像。
剛才介紹imread函數(shù)時(shí)已使用此函數(shù)。
(5)colorbar函數(shù)將顏色條添加到坐標(biāo)軸對(duì)象中。輸入以下程序:
RGB=imread('***');%圖像讀入
I=rgb2gray(RGB);%把RGB圖像轉(zhuǎn)換成灰度圖像
imshow(I),colorbar('vert')% 將顏色條添加到坐標(biāo)軸對(duì)象中
得到如圖:
2、圖像處理的基本操作
一、圖像代數(shù)運(yùn)算
(1)imadd函數(shù)實(shí)現(xiàn)兩幅圖像的相加或者給一幅圖像加上一個(gè)常數(shù)。給圖像每個(gè)像素都增加亮度的程序如下: I=imread('***');J=imadd(I,100);%給圖像增加亮度 subplot(1,2,1),imshow(I)%填充 subplot(1,2,2),imshow(J)結(jié)果如圖5。
(2)imsubtract函數(shù)實(shí)現(xiàn)從一幅圖像中減去一個(gè)常數(shù)。輸入以下程序?qū)崿F(xiàn)從一幅圖像中減去一個(gè)常數(shù):
(3)immultiply實(shí)現(xiàn)兩幅圖像的相乘或者一幅圖像的亮度縮放(圖像乘以小于1或大于1的參數(shù),比較效果)。輸入以下程序:
(4)imdivide函數(shù)實(shí)現(xiàn)兩幅圖像的除法或一幅圖像的亮度縮放。輸入以下程序:
二、圖像的空間域操作
(1)imrotate函數(shù)實(shí)現(xiàn)圖像的旋轉(zhuǎn)。輸入以下程序: I=imread('***');J=imrotate(I,45);%對(duì)圖像進(jìn)行旋轉(zhuǎn) subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(J);得到圖:
練習(xí)二 數(shù)字圖像處理的基本操作
一、練習(xí)目的
1、練習(xí)使用MATLAB工具進(jìn)行數(shù)字圖像處理;
2、實(shí)現(xiàn)圖像的邊緣提取、濾波、直方圖修正等操作。
二、練習(xí)環(huán)境
Windows操作系統(tǒng)
Matlab 6.5或以上應(yīng)用軟件
三、練習(xí)內(nèi)容
(1)imresize函數(shù)實(shí)現(xiàn)圖像的縮放。輸入以下程序:
J=imread('文件名.擴(kuò)展名');X1=imresize(J,2);%對(duì)圖像進(jìn)行縮放 figure,imshow(J)結(jié)果如圖
(2)imcrop函數(shù)實(shí)現(xiàn)圖像的剪切。輸入以下程序: I=imread('***');I2=imcrop(I);%對(duì)圖像進(jìn)行剪切 subplot(填充),imshow(填充);subplot(填充),imshow(填充);如圖:
圖像變換
(1)fft2函數(shù)和ifft2函數(shù)分別是計(jì)算二維的FFT和反變換。輸入以下程序: f=zeros(100,100);f(20:70,40:60)=1;imshow(f);F=fft2(f);% 計(jì)算二維的FFT F2=log(abs(F));%對(duì)幅值取對(duì)數(shù) imshow(F2),colorbar
(2)dct2函數(shù)采用基于FFT的算法,用于實(shí)現(xiàn)較大輸入矩陣的離散余弦變換。與之對(duì)應(yīng),idct2函數(shù)實(shí)現(xiàn)圖像的二維逆離散余弦變換 輸入以下程序: RGB=imread('***');I=rgb2gray(RGB);J=dct2(I);% 對(duì)I進(jìn)行離散余弦變換 imshow(log(abs(J))),colorbar J(abs(J)<10)=0;K=idct2(J);% 圖像的二維逆離散余弦變換 figure,imshow(I);figure,imshow(K,[0,255])得到如圖:
(3)edge函數(shù)用于提取圖像的邊緣。輸入以下程序:
RGB=imread('drum.bmp');I=rgb2gray(RGB);BW=edge(I);% 提取圖像的邊緣 imshow(I),figure,imshow(BW);得到圖
圖像增強(qiáng)、分割和編碼
(1)imhist函數(shù)產(chǎn)生圖像的直方圖。A=imread('drum.bmp');%讀入圖像
B=rgb2gray(A);%把RGB圖像轉(zhuǎn)化成灰度圖像 imshow(B);%顯示灰度圖像
imhist(B)%顯示灰度圖像的直方圖 得到圖
(2)histeq函數(shù)用于對(duì)圖像的直方圖均衡化。接上面程序:
C=histeq(B);%對(duì)圖像B進(jìn)行均衡化 imshow(C);%顯示圖像
imhist(C);%得到均衡化后的灰度直方圖 得到如圖
filter2函數(shù)實(shí)現(xiàn)均值濾波。輸入以下程序:
a=imread('noise.drum.jpg');I=rgb2gray(a);imshow(I);K1=filter2(fspecial('average',3),I)/255;% 3?3的均值濾波 K2=補(bǔ)充;
% 5?5的均值濾波 K3=補(bǔ)充;
% 7?7的均值濾波 figure,imshow(K1);figure,imshow(K2);figure,imshow(K3);得到圖
(5)medfilt2函數(shù)實(shí)現(xiàn)中值濾波。輸入以下程序:
自查函數(shù)如何使用,并編程: 結(jié)果如圖:
練習(xí)三
圖像采樣及圖像類型轉(zhuǎn)換
一、練習(xí)目的
1、熟悉并掌握MATLAB圖像處理工具箱的使用;
2、試對(duì)自選圖像分別進(jìn)行4和16倍剪采樣,查看其剪采樣效果
3、將所給圖,轉(zhuǎn)換成256級(jí)灰度圖像,8級(jí)灰度圖像和2值圖像
二、練習(xí)環(huán)境
MATLAB 6.5或以上版本、WIN XP或以上計(jì)算機(jī)
三、練習(xí)內(nèi)容
使用MATLAB,對(duì)圖像進(jìn)行減采樣。
a = imread('***.JPG');b = rgb2gray(a);[wid,hei]=size(b);%4倍減抽樣
quartimg = zeros(wid/2+1,hei/2+1);i1 = 1;j1 = 1;for i=1:2:wid
for j=1:2:hei
quartimg(i1,j1)= b(i,j);
j1 = j1 + 1;
end i1 = i1 + 1;j1 = 1;end figure
imshow(uint8(quartimg))練習(xí)結(jié)果如圖
%16倍減抽樣
編程并運(yùn)行顯示圖像結(jié)果:
圖像類型
1、練習(xí)內(nèi)容
試將自選圖,轉(zhuǎn)換成256級(jí)灰度圖像,8級(jí)灰度圖像和2值圖像
2、練習(xí)方法及程序
使用MATLAB,進(jìn)行圖像類型變換。
a = imread('***.jpg');b = rgb2gray(a);
figure imshow(b)[wid,hei]=size(b);img8 = zeros(wid,hei);img2 = zeros(wid,hei);for i=1:wid
for j=1:hei
img8(i,j)= floor(b(i,j)/32);%得到8級(jí)灰度圖像
end end figure
imshow(uint8(img8),[0,7])for i=1:wid
for j=1:hei
補(bǔ)充;end end figure
imshow(uint8(img8),[0,2])%得到2值圖像
練習(xí)結(jié)果如圖
練習(xí)四
數(shù)字圖像的空間域處理
一、練習(xí)目的
1、熟悉并掌握MATLAB圖像處理工具箱的使用;
2、熟悉圖像相加的方法及效果
3、熟悉圖像灰度擴(kuò)展的方法及效果
4、熟悉圖像縮放、旋轉(zhuǎn)的方法及效果
二、練習(xí)環(huán)境
MATLAB 6.5或以上版本、WIN XP或以上計(jì)算機(jī)
三、練習(xí)內(nèi)容 Part 1(1)選擇一幅圖像***.jpg,設(shè)置輸入輸出變換的灰度級(jí)范圍,a=0.3, b=0.6, c=0.1, d=0.9;
(2)設(shè)置非線性擴(kuò)展函數(shù)的參數(shù)c=2;
(3)采用灰度倒置變換函數(shù)s=255-r進(jìn)行圖像變換;
(4)設(shè)置二值化圖像的閾值,分別為level=0.4,level=0.7參考程序如下: I=imread('***.jpg');figure;subplot(1,3,1);imshow(I);title('原圖');J=imadjust(I,[0.3;0.6],[0.1;0.9]);%設(shè)置灰度變換的范圍 subplot(1,3,2);imshow(J);title('線性擴(kuò)展');I1=double(I);%將圖像轉(zhuǎn)換為double類型 I2=I1/255;%歸一化此圖像 C=2;K=C*log(1+I2);%求圖像的對(duì)數(shù)變換 subplot(1,3,3);imshow(K);title('非線性擴(kuò)展');M=255-I;%將此圖像取反 figure;subplot(1,3,1);imshow(M);title('灰度倒置');N1=im2bw(I,0.4);%將此圖像二值化,閾值為0.4 N2=im2bw(I,0.7);%將此圖像二值化,閾值為0.7 subplot(1,3,2);imshow(N1);title('二值化閾值0.4');subplot(1,3,3);imshow(N2);title('二值化閾值0.7');練習(xí)結(jié)果與分析
(1)練習(xí)結(jié)果如圖3.7所示。
Part 2 讀取一幅圖片,如***.jpg,設(shè)置圖像旋轉(zhuǎn)的角度分別為450和900,采用圖形旋轉(zhuǎn)函數(shù)imrotate對(duì)圖像進(jìn)行旋轉(zhuǎn)。程序如下,結(jié)果如圖3.10。
I=imread('i_lena.jpg');J=imrotate(I,45);%圖像進(jìn)行逆時(shí)針旋轉(zhuǎn),默認(rèn)采用最近鄰法進(jìn)行插值處理 K=imrotate(I,90);%默認(rèn)旋轉(zhuǎn)出界的部分不被截出 subplot(1,3,1);imshow(I);subplot(1,3,2);imshow(J);subplot(1,3,3);imshow(K);練習(xí)結(jié)果與分析
(1)練習(xí)結(jié)果如圖3.10所示。
練習(xí)五 數(shù)字圖像的頻域處理
一、練習(xí)目的
1、熟悉并掌握MATLAB工具的使用;
2、實(shí)現(xiàn)圖像離散傅里葉變換并觀察效果
3、實(shí)現(xiàn)圖像離散余弦變換并觀察效果
二、練習(xí)環(huán)境
Windows操作系統(tǒng) Matlab 6.5或以上應(yīng)用軟件
三、練習(xí)內(nèi)容 Part 1 選取一幅圖像,進(jìn)行離散傅里葉變換,再對(duì)其分別進(jìn)行X軸與Y軸上的平移,得其離散傅里葉變換,觀察三幅結(jié)果圖。
I=imread('1.bmp');figure(1)imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI);%求離散傅里葉頻譜
%對(duì)原始圖像進(jìn)行二維傅里葉變換,并將其坐標(biāo)原點(diǎn)移到頻譜圖中央位置
RRfdp1=real(sfftI);IIfdp1=imag(sfftI);a=sqrt(RRfdp1.^2+IIfdp1.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;
figure(2)imshow(real(a));練習(xí)結(jié)果與分析
Part 2 選取一幅圖像,進(jìn)行離散傅里葉變換,再對(duì)其進(jìn)行一定角度的旋轉(zhuǎn),進(jìn)行離散傅里葉變換。
%構(gòu)造原始圖像
I = zeros(256,256);
I(88:168,124:132)= 1;%圖像范圍是256*256,前一值是縱向比,后一值是橫向比 imshow(I)
%求原始圖像的傅里葉頻譜
J = fft2(I);F = abs(J);J1 = fftshift(F);figure imshow(J1,[5 50])
%對(duì)原始圖像進(jìn)行旋轉(zhuǎn)
J = imrotate(I,90,'bilinear','crop');figure imshow(J)%求旋轉(zhuǎn)后圖像的傅里葉頻譜
J1 = fft2(J);F = abs(J1);J2 = fftshift(F);figure imshow(J2,[5 50])練習(xí)結(jié)果與分析
1)練習(xí)結(jié)果如圖4.4所示.Part 3 選取一幅圖像,進(jìn)行離散余弦變換,并對(duì)其進(jìn)行離散余弦反變換,觀察其結(jié)果。
%對(duì)***.jpg文件計(jì)算二維DCT變換 RGB = imread('***.jpg ');figure(1)imshow(RGB)I = rgb2gray(RGB);%真彩色圖像轉(zhuǎn)換成灰度圖像 J = dct2(I);%計(jì)算二維DCT變換 figure(2)imshow(log(abs(J)),[])%圖像大部分能量集中在上左角處 figure(3);J(abs(J)< 10)= 0;%把變換矩陣中小于10的值置換為0,然后用idct2重構(gòu)圖像 K = idct2(J)/255;imshow(K)練習(xí)結(jié)果與分析
第三篇:數(shù)字圖像處理上機(jī)實(shí)驗(yàn)(02091008)
數(shù)字圖像處理上機(jī)作業(yè)
數(shù)字圖像處理上機(jī)作業(yè)
1.產(chǎn)生右圖所示亮塊圖像 f1(x,y)(128×128大小,暗處=0,亮處=255),對(duì)其進(jìn)行FFT:
(1)同屏顯示原圖f1和FFT(f1)的幅度譜圖;
圖像:
(2)若令f2(x,y)=(-1)f1(x,y),重復(fù)以上過(guò)程,比較二者幅度譜的異同,簡(jiǎn)述理由;(3)若將f2(x,y)順時(shí)針旋轉(zhuǎn)45度得到f3(x,y),試顯示FFT(f3)的幅度譜,并與FFT(f2)的幅度譜進(jìn)行比較。
x+y
結(jié)論:不同點(diǎn):f2的頻譜是對(duì)f1頻譜的移位,它時(shí)f1的頻譜從原點(diǎn)(0,0)移到了中心(64,64),而得到了一個(gè)完整的頻譜。
相同點(diǎn):頻譜的實(shí)質(zhì)沒(méi)有改變,幅度等都沒(méi)有發(fā)生變化。
(3)若將f2(x,y)順時(shí)針旋轉(zhuǎn)45度得到f3(x,y),試顯示FFT(f3)的幅度譜,并與FFT(f2)的幅度譜進(jìn)行比較。
源程序:f1=zeros(128,128);for i=38:1:90 for j=58:1:70 f1(i,j)=255;end end figure(1)subplot(1,2,1);imshow(f1);subplot(1,2,2);imshow(fft2(f1));% f2(x,y)=(-1)^(x+y)* f1(x,y)for i=1:1:128 for j=1:1:128 f2(i,j)=(-1)^(i+j)*f1(i,j);end end figure(2);subplot(1,3,1);imshow(f2);f3=imrotate(f2,-45,'bilinear');%將f2順時(shí)針旋轉(zhuǎn)45度 subplot(1,3,2);imshow(fft2(f2));%顯示f2的頻譜 subplot(1,3,3);imshow(fft2(f3));%顯示f3的頻譜
結(jié)論:均衡化后的直方圖并非完全均勻分布的原因:因?yàn)閳D像的像素個(gè)數(shù)和灰度等級(jí)均為離散值,而且均衡化后使灰度級(jí)并歸。
2.對(duì)256?256大小、256級(jí)灰度的數(shù)字圖像lena進(jìn)行頻域的理想低通、高通濾波,同屏顯示原圖、幅度譜圖和低通、高通濾波的結(jié)果圖。
源代碼: figure(1);fid=fopen('d:imglena.img','r');data=(fread(fid,[256,256],'uint8'))';subplot(2,2,1)imagesc(data);colormap(gray);title('LENA','Color','r');subplot(2,2,2);imshow(fft2(data));s=fftshift(fft2(data));[M,N]=size(s);%分別返回s的行數(shù)到M中,列數(shù)到N中 n=2;%對(duì)n賦初值 %GLPF濾波,d0=5,15,30(程序中以d0=30為例)d0=30;%初始化d0 n1=floor(M/2);%對(duì)M/2進(jìn)行取整 n2=floor(N/2);%對(duì)N/2進(jìn)行取整 for i=1:M for j=1:N d=sqrt((i-n1)^2+(j-n2)^2);%點(diǎn)(i,j)到傅立葉變換中心的距離 h=1*exp(-1/2*(d^2/d0^2));%GLPF濾波函數(shù)
s(i,j)=h*s(i,j);%GLPF濾波后的頻域表示 end end s=ifftshift(s);%對(duì)s進(jìn)行反FFT移動(dòng)
%對(duì)s進(jìn)行二維反離散的Fourier變換后,取復(fù)數(shù)的實(shí)部轉(zhuǎn)化為無(wú)符號(hào)8位整數(shù) s=uint8(real(ifft2(s)));subplot(2,2,3);%創(chuàng)建圖形圖像對(duì)象 imshow(s);p=fftshift(fft2(data));[M,N]=size(p);%分別返回p的行數(shù)到M中,列數(shù)到N中 n=2;%對(duì)n賦初值 %GLPF濾波d1=30 d1=30;%初始化d1 n3=floor(M/2);%對(duì)M/2進(jìn)行取整 n4=floor(N/2);%對(duì)N/2進(jìn)行取整 for i=1:M for j=1:N dd=sqrt((i-n3)^2+(j-n4)^2);%點(diǎn)(i,j)到傅立葉變換中心的距離 h1=1-exp(-1/2*(dd^2/d1^2));%GHPF濾波函數(shù)
p(i,j)=h1*p(i,j);%GHPF濾波后的頻域表示 end end p=ifftshift(p);%對(duì)p進(jìn)行反FFT移動(dòng)
%對(duì)s進(jìn)行二維反離散的Fourier變換后,取復(fù)數(shù)的實(shí)部轉(zhuǎn)化為無(wú)符號(hào)8位整數(shù) p=uint8(real(ifft2(p)));subplot(2,2,4);%創(chuàng)建圖形圖像對(duì)象 imshow(p);
3.對(duì)給定的兩種128?128、256級(jí)灰度的數(shù)字圖像(圖像磁盤文件名分別為Fing_128.img(指紋圖)和Cell_128.img(顯微醫(yī)學(xué)圖像)進(jìn)行如下處理:
(1)對(duì)原圖像進(jìn)行直方圖均衡化處理,同屏顯示處理前后圖像及其直方圖,比較異同,并回答為什么數(shù)字圖像均衡化后其直方圖并非完全均勻分布。
異同:由于原圖像中目標(biāo)物的灰度主要集中于低亮度部分,而且象素總數(shù)比較多,經(jīng)過(guò)直方圖均衡后,目標(biāo)物的所占的灰度等級(jí)得到擴(kuò)展,對(duì)比度加強(qiáng),使整個(gè)圖像得到增強(qiáng)。
數(shù)字圖像均衡化后其直方圖并非完全均勻分布的原因:由于原圖像中目標(biāo)物的灰度主要集中于低亮度部分,而且象素總數(shù)比較少,而所占的灰度等級(jí)比較多,因此圖像的對(duì)比度比較好,亮度比較大,整體圖像清晰。經(jīng)過(guò)直方圖均衡后,目標(biāo)物的所占的灰度等級(jí)被壓縮,對(duì)比度減弱,反而使目標(biāo)物變的難以辨認(rèn)。
數(shù)字圖像均衡化后,其直方圖并非完全均勻分布,這是因?yàn)閳D像的象素個(gè)數(shù)和灰度等級(jí)均為離散值;而且均衡化使灰度級(jí)并歸,因此,均衡化后,其直方圖并非完全均勻分布。
源代碼: figure(1);fid=fopen('D:imgcell_128.img','r');
%打開(kāi)無(wú)格式文件 data1=(fread(fid,[128,128],'uint8'))';%將打開(kāi)的文件讀入到data1 subplot(4,2,1);
%將figure(1)分成4*2的8個(gè)子窗口, data11=uint8(data1);imshow(data11);%圖象顯示
title('CELL','Color','b');
%加標(biāo)題 subplot(4,2,2);title('原圖像直方圖');imhist(data11);subplot(4,2,3);
%取第二個(gè)子窗口
data2=uint8(data1);%將灰度圖象轉(zhuǎn)換成uint8格式 b=histeq(data2);
%直方圖均衡化
imshow(b,256);
%顯示均衡化圖象,256可缺省 title('均衡化','Color','b');
subplot(4,2,4);imhist(b);title('均衡化后圖像直方圖');subplot(4,2,5)fid=fopen('d:imgfing_128.img','r');%打開(kāi)無(wú)格式文件
data3=(fread(fid,[128,128],'uint8'))';%將打開(kāi)的文件讀入到data3 data31=uint8(data3);
%將灰度圖象轉(zhuǎn)換成uint8格式 imshow(data31);
%顯示灰度圖象 title('FING','Color','b');subplot(4,2,6)imhist(data31);title('原圖像直方圖');subplot(4,2,7);
data4=uint8(data3);%將灰度圖象轉(zhuǎn)換成uint8格式 d=histeq(data4);
%直方圖均衡化
imshow(d,256);
%顯示均衡化圖象,256可缺省 title('均衡化','Color','b');
subplot(4,2,8);imhist(d);title('均衡化后原圖像直方圖');(2)對(duì)原圖像加入高斯噪聲,用4-鄰域平均法平滑加噪聲圖像(圖像四周邊界不處理,下同),同屏顯示原圖像、加噪圖像和處理后的圖像。
① 不加門限;
② 加門限 T?2f(m,n),(其中f(m,n)?
1N2??f(i,j))
ij
源代碼: % CELL figure(2);fid=fopen('D:imgcell_128.img','r');
%打開(kāi)無(wú)格式文件
data1=(fread(fid,[128,128],'uint8'))';%將打開(kāi)的文件讀入到data1 I=uint8(data1);I1=imnoise(I,'gaussian');%加乘性噪聲 H1=[0 1 0;1 0 1;0 1 0]/4;%4×4領(lǐng)域模板 J=imfilter(I,H1);%領(lǐng)域平均
subplot(2,4,1),imshow(I);%顯示圖像I title('原圖像');subplot(2,4,2),imshow(I1);title('加噪聲后圖像');subplot(2,4,3),imshow(J);
%不加門限平滑 title('不加門限平滑后圖像');%加門限后濾波
T= 2*sum(I1(:))/128^2;im_T = zeros(128,128);for i = 1:128
for j = 1:128
if abs(I1(i,j)J(i,j))>T
im_T(i,j)= J(i,j);
else
im_T(i,j)= I1(i,j);
end
end end subplot(2,4,8);imshow(im_T);title('加門限后');4.(1)用Laplacian銳化算子(分??1和??2兩種情況)對(duì)256?256大小、256級(jí)灰度的數(shù)字圖像lena進(jìn)行銳化處理,顯示處理前、后圖像。
源代碼:
%laplacian算子銳化
I=imread('D:imgLENA256.bmp');% 讀入原圖像 figure(1);subplot(1,3,1);imshow(I);title('原始圖像');L=fspecial('laplacian');L1=[0-1 0;-1 5-1;0-1 0];L2=[0-2 0;-2 9-2;0-2 0];LP1=imfilter(I,L1,'replicate');% α=1時(shí)的拉普拉斯算子 LP2=imfilter(I,L2,'replicate');% α=2時(shí)的拉普拉斯算子
subplot(1,3,2);imshow(LP1);title('Laplacian算子α=1銳化圖像');subplot(1,3,3);imshow(LP2);title('Laplacian算子α=2銳化圖像');
(2)若令
g1(m,n)?f(m,n)???2f,g2(m,n)?4?f(m,n)??[f(m?1,n)?f(m?1,n)?f(m,n?1)?f(m,n?1)
?f(m,n?1)?f(m,n?1)]
則回答如下問(wèn)題:
① f(m,n)、g1(m,n)和g2(m,n)之間有何關(guān)系? ② g2(m,n)代表圖像中的哪些信息? ③ 由此得出圖像銳化的實(shí)質(zhì)是什么?
①因?yàn)間2(m,n)????2f(m,n),所以f(m,n)、g1(m,n)和g2(m,n)之間有以下關(guān)系:
g1(m,n)?f(m,n)?g2(m,n)
②g2(m,n)代表了原圖像中的二階梯度信息;g1(m,n)是邊緣增強(qiáng)后的數(shù)字圖像; ③由此可以得出:圖像銳化的實(shí)質(zhì)是將原圖像與梯度信息疊加(梯度信息所占的比例由,相當(dāng)于對(duì)目標(biāo)物的邊緣進(jìn)行了增強(qiáng)。?的大小決定,?值越大則梯度信息所占的比例越大)
5.分別利用Roberts、Prewitt和Sobel邊緣檢測(cè)算子,對(duì)256?256大小、256級(jí)灰度的數(shù)字圖像lena進(jìn)行邊緣檢測(cè),顯示處理前、后圖像。圖像:
源代碼:
I=imread('D:imgLENA256.bmp');% 讀入原圖像 figure(1)%Roberts梯度法銳化
subplot(2,2,1);imshow(I);title('原始圖像');J=double(I);[IX,IY]=gradient(J);%計(jì)算梯度 A=sqrt(IX.*IX+IY.*IY);subplot(2,2,2);imshow(A,[]);title('Roberts梯度法銳化圖像');%Prewitt算子銳化
S=imfilter(I,fspecial('Prewitt'));subplot(2,2,3);imshow(S);title('Prewitt算子銳化圖像');%Sobel算子銳化
S=imfilter(I,fspecial('sobel'));subplot(2,2,4);imshow(S);title('Sobel算子銳化圖像');
6、學(xué)習(xí)數(shù)字圖像處理課程的心得體會(huì),該課程在哪些方面需要改進(jìn),對(duì)該課程或者任課老師有哪些意見(jiàn)或建議。
通過(guò)對(duì)數(shù)字圖像處理課程的認(rèn)真學(xué)習(xí),在課堂聽(tīng)課和課余實(shí)踐中了解了數(shù)字圖像的基礎(chǔ)知識(shí),培養(yǎng)了一定的軟件編程能力,在努力完成課堂作業(yè)的同時(shí),發(fā)現(xiàn)了對(duì)圖像方面的興趣。老師認(rèn)真負(fù)責(zé),布置合理的作業(yè)。但希望能夠通過(guò)更加豐富的授課方式,提高更多人學(xué)習(xí)該門課程的興趣和主動(dòng)性。也同樣希望老師能夠加強(qiáng)點(diǎn)名和作業(yè)的驗(yàn)收,督促學(xué)生更加認(rèn)真的學(xué)習(xí)知識(shí)。
第四篇:數(shù)字圖像處理期中作業(yè)報(bào)告
西安科技大學(xué)
通信學(xué)院
數(shù)字圖像處理實(shí)驗(yàn)報(bào)告
直 方 圖 均 衡 化
西安科技大學(xué)
通信學(xué)院
題目:直方圖均衡化
一、實(shí)驗(yàn)?zāi)康?/p>
1.通過(guò)實(shí)驗(yàn)理解直方圖均衡化的原理及步驟; 2.編程實(shí)現(xiàn)圖像(灰度或彩色)的直方圖均衡化;
3.通過(guò)實(shí)驗(yàn)更深刻的理解課本知識(shí)和加強(qiáng)動(dòng)手實(shí)踐能力。
二、實(shí)驗(yàn)要求
(1)讀入一幅圖像;
(2)編程繪制給定圖象的灰度直方圖;
(3)編程實(shí)現(xiàn)給定圖象的直方圖均衡,得到均衡后的新圖象;(4)比較均衡前后的兩幅圖象以及各自的灰度直方圖,分析討論直方圖均衡提高圖象對(duì)比度的效果;
三、實(shí)驗(yàn)原理
1.直方圖均衡化概述
圖像的對(duì)比度增強(qiáng)的方法可以分成兩類:一類是直接對(duì)比度增強(qiáng)方法;另一類是間接對(duì)比度增強(qiáng)方法。直方圖拉伸和直方圖均衡化是兩種最常見(jiàn)的間接對(duì)比度增強(qiáng)方法。直方圖拉伸是通過(guò)對(duì)比度拉伸對(duì)直方圖像素分布進(jìn)行調(diào)整,從而“擴(kuò)大”前景和背景灰度的差別,以達(dá)到增強(qiáng)對(duì)比度的目的,這種方法可以利用線性或非線性的方法來(lái)實(shí)現(xiàn);直方圖均衡化則通過(guò)使用累積函數(shù)對(duì)灰度值進(jìn)行“調(diào)整”以實(shí)現(xiàn)對(duì)比度的增強(qiáng)。
直方圖均衡化是圖像處理領(lǐng)域中利用圖像直方圖對(duì)對(duì)比度進(jìn)行調(diào)整的方法。這種方法通常用來(lái)增加許多圖像的局部對(duì)比度,尤其是當(dāng)圖像的有用數(shù)據(jù)的對(duì)比度相當(dāng)接近的時(shí)候。通過(guò)這種方法,亮度可以 2
西安科技大學(xué)
通信學(xué)院
更好地在直方圖上分布。這樣就可以用于增強(qiáng)局部的對(duì)比度而不影響整體的對(duì)比度,直方圖均衡化通過(guò)有效地?cái)U(kuò)展常用的亮度來(lái)實(shí)現(xiàn)這種功能。
2.基本思想
直方圖均衡化處理的“中心思想”是把原始圖像的灰度直方圖從比較集中的某個(gè)灰度區(qū)間變成在全部灰度范圍內(nèi)的均勻分布。直方圖均衡化就是對(duì)圖像進(jìn)行非線性拉伸,重新分配圖像像素值,使一定灰度范圍內(nèi)的像素?cái)?shù)量大致相同。直方圖均衡化就是把給定圖像的直方圖分布改變成“均勻”分布直方圖分布。
直方圖均衡化的基本思想是把原始圖的直方圖變換為均勻分布的形式,這樣就增加了象素灰度值的動(dòng)態(tài)范圍從而可達(dá)到增強(qiáng)圖像整體對(duì)比度的效果。設(shè)原始圖像在(x,y)處的灰度為f,而改變后的圖像為s,則對(duì)圖像增強(qiáng)的方法可表述為將在(x,y)處的灰度f(wàn)映射為g。在灰度直方圖均衡化處理中對(duì)圖像的映射函數(shù)可定義為:s = EQ(f),這個(gè)映射函數(shù)EQ(f)必須滿足兩個(gè)條件(其中L為圖像的灰度級(jí)數(shù)):(1)EQ(f)在0≤f≤L-1范圍內(nèi)是一個(gè)單值單增函數(shù)。這是為了保證增強(qiáng)處理沒(méi)有打亂原始圖像的灰度排列次序,原圖各灰度級(jí)在變換后仍保持從黑到白(或從白到黑)的排列。
(2)對(duì)于0≤f≤L-1有0≤s≤L-1,這個(gè)條件保證了變換前后灰度值動(dòng)態(tài)范圍的一致性。
累積分布函數(shù)(cumulative distribution function,CDF)即可以滿足上述兩個(gè)條件,并且通過(guò)該函數(shù)可以完成將原圖像f的分布轉(zhuǎn)換
西安科技大學(xué)
通信學(xué)院
成s的均勻分布。此時(shí)的直方圖均衡化映射函數(shù)為:sk = EQ(fk)=(ni/n)= Pf(fi),(k=0,1,2,??,L-1)上述求和區(qū)間為0到k,根據(jù)該方程可以由源圖像的各像素灰度值直接得到直方圖均衡化后各像素的灰度值。在實(shí)際處理變換時(shí),一般先對(duì)原始圖像的灰度情況進(jìn)行統(tǒng)計(jì)分析,并計(jì)算出原始直方圖分布,然后根據(jù)計(jì)算出的累計(jì)直方圖分布求出fk到sk的灰度映射關(guān)系。在重復(fù)上述步驟得到源圖像所有灰度級(jí)到目標(biāo)圖像灰度級(jí)的映射關(guān)系后,按照這個(gè)映射關(guān)系對(duì)源圖像各點(diǎn)像素進(jìn)行灰度轉(zhuǎn)換,即可完成對(duì)源圖的直方圖均衡化。
離散情況下的直方圖均衡化的算法: 列出原始圖像的灰度級(jí)fj,j?0,1,?,L?1 統(tǒng)計(jì)各灰度級(jí)的像素?cái)?shù)目nj,j?0,1,?,L?1
計(jì)算原始圖像直方圖各灰度級(jí)的頻數(shù)Pf(fj)?nj/n,j?0,1,?,L?1
k計(jì)算累積分布函數(shù):C(f)??P(f),j?0,1,?,k,?L?1
fjj?0應(yīng)用以下公式計(jì)算映射后的輸出圖像的灰度級(jí),P為輸出圖像灰度級(jí)的個(gè)數(shù),其中INT為取整符號(hào):
g?INT[(g?g)C(f)?g?0.5] imaxminmin用的映射關(guān)系修改原始圖像的灰度級(jí),從而獲得直方圖近似為均勻分布的輸出圖像。
四、程序代碼
(調(diào)庫(kù)函數(shù))
西安科技大學(xué)
通信學(xué)院
clc;clear all;I=imread('F:數(shù)字圖像處理常用圖片lena1.jpg');figure(1);subplot(2,2,1);imshow(I);title('原始圖像');subplot(2,2,2);imhist(I);title('原始圖像灰度直方圖');I1=im2double(I);I2=log(I1+1);%對(duì)數(shù)變換
I3=mat2gray(I2);%把圖像的灰度范圍變換為【0,1】
subplot(2,2,3);imshow(I3);title('對(duì)數(shù)變換增強(qiáng)后的圖像')subplot(2,2,4);imhist(I3);title('對(duì)數(shù)變換后灰度直方圖')
figure(2);B=imadjust(I,[0.05 0.7],[0.1 1.0]);subplot(2,2,1);imshow(B);title('灰度級(jí)線性調(diào)整');subplot(2,2,2);imhist(B);title('灰度級(jí)線性調(diào)整后直方圖');J=histeq(I);subplot(2,2,3);imshow(J);title('直方圖規(guī)定化');subplot(2,2,4);imhist(J);title('直方圖規(guī)定化后直方圖');
截圖:
原始圖像30002000100000對(duì)數(shù)變換增強(qiáng)后的圖像原始圖像灰度直方圖100200對(duì)數(shù)變換后的圖像灰度直方圖***.51
西安科技大學(xué)
通信學(xué)院
灰度級(jí)線性調(diào)整***000直方圖規(guī)定化4000100200灰度級(jí)線性調(diào)整后直方圖直方圖規(guī)定化后直方圖200000100200
(編寫(xiě)算法)clc;clear all %一,圖像的預(yù)處理,讀入彩色圖像將其灰度化
I=imread('F:數(shù)字圖像處理常用圖片pepper.tif');%讀入JPG彩色圖像文件 figure(1);subplot(1,2,1);imshow(I);%顯示出來(lái) title('輸入的彩色JPG圖像')imwrite(rgb2gray(I),'PicSampleGray.bmp');%將彩色圖片灰度化并保存 I_1=rgb2gray(I);%灰度化后的數(shù)據(jù)存入數(shù)組 %二,繪制直方圖
[height,width]=size(I_1);%測(cè)量圖像尺寸參數(shù)
GP=zeros(1,256);%預(yù)創(chuàng)建存放灰度出現(xiàn)概率的向量 for k=0:255 GP(k+1)=length(find(I_1==k))/(height*width);%計(jì)算每級(jí)灰度出現(xiàn)的概率,將其存入GP中相應(yīng)位置 end figure(2);subplot(1,2,1);bar(0:255,GP,'r')%繪制直方圖 title('原圖像直方圖');xlabel('灰度值');ylabel('出現(xiàn)概率')axis([-5 250 0 0.012])%三,直方圖均衡化 S1=zeros(1,256);for i=1:256
西安科技大學(xué)
通信學(xué)院
for j=1:i S1(i)=GP(j)+S1(i);%計(jì)算Sk end end S2=round((S1*256)+0.5);%將Sk歸到相近級(jí)的灰度 for i=1:256 GPeq(i)=sum(GP(find(S2==i)));%計(jì)算現(xiàn)有每個(gè)灰度級(jí)出現(xiàn)的概率 end figure(2);subplot(1,2,2);bar(0:255,GPeq,'y')%顯示均衡化后的直方圖 title('均衡化后的直方圖');xlabel('灰度值');ylabel('axis([-5 270 0 0.012])%四,圖像均衡化 PA=I;for i=0:255 PA(find(I==i))=S2(i+1);%給這個(gè)像素 end figure(1);subplot(1,2,2);imshow(PA)%title('均衡化后圖像')imwrite(PA,'PicEqual.bmp');
截圖:
輸入的彩色JPG圖像 7
出現(xiàn)概率')將各個(gè)像素歸一化后的灰度值賦顯示均衡化后的圖像 均衡化后圖像
西安科技大學(xué)
通信學(xué)院
原圖像直方圖0.0120.012均衡化后的直方圖0.010.010.0080.008出現(xiàn)概率0.006出現(xiàn)概率0.0060.0040.0040.0020.0020050100灰度值***50100150灰度值200250
五、實(shí)驗(yàn)結(jié)果
分析:從上述實(shí)驗(yàn)結(jié)果可以看出,經(jīng)過(guò)直方圖均衡化后的圖片的對(duì)比度更高,且邊緣效果更高。這些圖片非常有利于人眼的觀看識(shí)別。直方圖均衡化可以達(dá)到增強(qiáng)圖像的顯示效果的作用。通過(guò)原圖像的直方圖可以觀察出,圖像中各種亮度所占的比例大都分布不均勻,直方圖增強(qiáng)的方法就是壓縮直方圖中比例少的像素所占用的灰度范圍,多出來(lái)的灰度空間按照統(tǒng)計(jì)比例分配給直方圖中比例高的像素使用。這種方法主要是針對(duì)人眼對(duì)灰度差別越大的圖像更容易分辨的特點(diǎn)而做的增強(qiáng)。
直方圖均衡化由于可能會(huì)丟失一些灰度級(jí),所以造成圖片信息在一定程度上的損失。變換后圖像的灰度級(jí)減少也會(huì)使某些細(xì)節(jié)消失。并且某些圖像經(jīng)均衡化處理后的對(duì)比度不自然的過(guò)分增強(qiáng)。
六、成員分工
七、心得體會(huì)
通過(guò)近幾周的設(shè)計(jì),我們學(xué)到了很多東西,對(duì)如何獲得知識(shí)也有
西安科技大學(xué)
通信學(xué)院
了一定的感知。首先,對(duì)這個(gè)設(shè)計(jì)題目,要做好充分的準(zhǔn)備工作,經(jīng)過(guò)在圖書(shū)館查找一些相關(guān)的資料,上網(wǎng)搜索一些相關(guān)的知識(shí)后,我們終于對(duì)需要的流程有了一定的規(guī)劃。其次,在實(shí)際設(shè)計(jì)過(guò)程中,我們充分地利用課本上和老師提過(guò)的一些知識(shí)、思路。同時(shí)與組內(nèi)同學(xué)認(rèn)真交談,相互領(lǐng)會(huì)對(duì)方的思路和方法,提高自己的交際能力和團(tuán)隊(duì)精神。再次,通過(guò)對(duì)此設(shè)計(jì),我們對(duì)圖像處理的知識(shí)有了更加深入的了解,知道了什么是圖像增強(qiáng),知道了怎樣均衡化,知道了怎樣利用圖像增強(qiáng)的知識(shí)處理學(xué)習(xí)、生活中遇到的一些問(wèn)題。
在此次程序課程設(shè)計(jì)中,收獲知識(shí)的同時(shí)也收獲了成熟。我們不僅培養(yǎng)了思考問(wèn)題的能力,也提高了獲取知識(shí)的能力,并且相互合作的過(guò)程中感受到一個(gè)人的力量遠(yuǎn)沒(méi)有團(tuán)隊(duì)的力量大,遇到問(wèn)題時(shí),集體的智慧才會(huì)更有效解決,因此只有相互團(tuán)結(jié),互相學(xué)習(xí)交流,這樣大家都會(huì)懂得更多,進(jìn)步更快。平時(shí)也要學(xué)會(huì)謙虛向其他人學(xué)習(xí),我們以后會(huì)更加珍惜和重視這樣的機(jī)會(huì)。
第五篇:《數(shù)字圖像處理》
實(shí)驗(yàn)五 圖像的幾何變換
一.實(shí)驗(yàn)?zāi)康募耙?/p>
掌握?qǐng)D像幾何變換的基本原理,熟練掌握數(shù)字圖像的縮放、旋轉(zhuǎn)、平移、鏡像和轉(zhuǎn)置的基本原理及其MATLAB編程實(shí)現(xiàn)方法。
二、實(shí)驗(yàn)內(nèi)容
(一)研究以下程序,分析程序功能;輸入執(zhí)行各命令行,認(rèn)真觀察命令執(zhí)行的結(jié)果。熟悉程序中所使用函數(shù)的調(diào)用方法,改變有關(guān)參數(shù),觀察試驗(yàn)結(jié)果。
1.圖像縮放 clear all, close all I = imread('cameraman.tif');Scale = 1.35;
% 將圖像放大1.35倍
J1 = imresize(I, Scale, 'nearest');
% using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');
% using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');help imresize
% 查看imresize使用幫助
1.95倍
I = imread('cameraman.tif');Scale = 1.96;
% 將圖像放大1.96倍
J1 = imresize(I, Scale, 'nearest');
% using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');
% using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');
說(shuō)明:
?注意觀察不同插值方法的圖像表現(xiàn); ?改變圖像縮放因子Scale,重做上述實(shí)驗(yàn)。2.圖像旋轉(zhuǎn)
clear all, close all I = imread('cameraman.tif');Theta = 45;
% 將圖像逆時(shí)針旋轉(zhuǎn)45?。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-45;
% 將圖像順時(shí)針旋轉(zhuǎn)45?。
J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');% 查看imrotate使用幫助 help imrotate %-------
圖像旋轉(zhuǎn)30順時(shí)針逆時(shí)針
clear all, close all I = imread('cameraman.tif');Theta = 30;
% 將圖像逆時(shí)針旋轉(zhuǎn)30。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-30;
% 將圖像順時(shí)針旋轉(zhuǎn)30。
J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');7 說(shuō)明:
?注意觀察不同插值方法和輸出圖像后處理方法的圖像表現(xiàn); ?改變旋轉(zhuǎn)角度大小和方向,重做上述實(shí)驗(yàn)。
3.圖像水平鏡象
clear all, close all I = imread('cameraman.tif');I1 = flipdim(I,2);
I2 = flipdim(I,1);figure(1), subplot(1,2,1), imshow(I);subplot(1,2,2), imshow(I1);figure(2), subplot(2,1,1), imshow(I);subplot(2,1,2), imshow(I2);%----
(二)用MATLAB編程實(shí)現(xiàn)以下圖像幾何變換(參考自編講義相關(guān)章節(jié))
1.圖像扭曲變換 2.球面變換
三、實(shí)驗(yàn)設(shè)備
1.PIII以上微機(jī); 2.MATLAB6.5;
四、預(yù)習(xí)與思考
1.預(yù)習(xí)實(shí)驗(yàn)內(nèi)容,閱讀教材熟悉實(shí)驗(yàn)原理;
2.查閱資料,熟悉實(shí)驗(yàn)中涉及的有關(guān)MATLAB函數(shù);
3.利用課余時(shí)間,采用MATLAB底層函數(shù)編程實(shí)現(xiàn)實(shí)驗(yàn)內(nèi)容
(二)中的圖像平移、圖像轉(zhuǎn)置等幾何變換。
五、實(shí)驗(yàn)報(bào)告要求
1.簡(jiǎn)述試驗(yàn)的目的和試驗(yàn)原理;
2.?dāng)⑹龈鞫纬绦蚬δ埽淖冇嘘P(guān)函數(shù)的參數(shù),分析比較實(shí)驗(yàn)結(jié)果; 3.打印出所編寫(xiě)的實(shí)驗(yàn)程序。4.寫(xiě)出本實(shí)驗(yàn)的心得體會(huì)及意見(jiàn)。
實(shí)驗(yàn)六
數(shù)字圖像處理應(yīng)用
一.實(shí)驗(yàn)?zāi)康募耙?/p>
1.利用MATLAB提供的圖像處理函數(shù)實(shí)現(xiàn)圖像中物體屬性的測(cè)量; 2.訓(xùn)練綜合運(yùn)用MATLAB圖像處理函數(shù)的能力; 3.了解數(shù)字圖像處理基本應(yīng)用。
二、實(shí)驗(yàn)內(nèi)容
以大米粒特性測(cè)量為例,綜合應(yīng)用課程中圖像分割、形態(tài)學(xué)濾波、圖像增強(qiáng)、圖像特征提取等圖像處理方法,實(shí)現(xiàn)大米粒特性自動(dòng)測(cè)量。實(shí)驗(yàn)過(guò)程簡(jiǎn)述:
1. 讀取和顯示圖像 2. 估計(jì)圖像背景 3. 獲取背景均勻的圖像 4. 圖像增強(qiáng) 5. 圖像二值化分割 6. 區(qū)域標(biāo)記及為彩色處理
7. 測(cè)量圖像中的區(qū)域特性(面積、質(zhì)心等)
8.統(tǒng)計(jì)大米粒的特性分布規(guī)律。
(一)研究以下程序,分析程序功能;輸入執(zhí)行各命令行,認(rèn)真觀察命令執(zhí)行的結(jié) 果。熟悉程序中所使用函數(shù)的調(diào)用方法,改變有關(guān)參數(shù),觀察試驗(yàn)結(jié)果。
% Read and Display an Image clear, close all,close all;I = imread('rice.png');
figure, imshow(I)
% Use Morphological Opening to Estimate the Background
background = imopen(I,strel('disk',15));
figure, imshow(background);
%Display the Background Approximation as a Surface
figure, surf(double(background(1:8:end,1:8:end))),zlim([0 255]);set(gca,'ydir','reverse');% Subtract the Background Image from the Original Image I2 = imsubtract(I,background);figure, imshow(I2)% Adjust the Image Contrast I3 = imadjust(I2, stretchlim(I2), [0 1]);figure, imshow(I3);% Apply Thresholding to the Image level = graythresh(I3);bw = im2bw(I3,level);figure, imshow(bw)% Determine the Number of Objects in the Image [labeled,numObjects] = bwlabel(bw,4);
% Label components.numObjects % Examine the Label Matrix RGB_label = label2rgb(labeled, @spring, 'c', 'shuffle');figure, imshow(RGB_label);% Measure Object Properties in the Image graindata = regionprops(labeled,'basic')allgrains = [graindata.Area];% Compute Statistical Properties of Objects in the Image max(allgrains);biggrain = find(allgrains==695)mean(allgrains);figure, hist(allgrains,20);12
(詳見(jiàn)MATLAB IPT的 幫助文檔demo中的Correcting Nonuniform Illumination)
(二)查看MATLAB IPT 幫助文檔,研究其它應(yīng)用演示
三、實(shí)驗(yàn)設(shè)備 1.PIII以上微機(jī); 2.MATLAB6.5;
四、預(yù)習(xí)與思考
1.預(yù)習(xí)實(shí)驗(yàn)內(nèi)容,閱讀教材熟悉實(shí)驗(yàn)原理; 2.查閱資料,熟悉實(shí)驗(yàn)中涉及的有關(guān)函數(shù)。
3.利用課余時(shí)間,采用MATLAB函數(shù)編程實(shí)現(xiàn)實(shí)驗(yàn)內(nèi)容
(二)。
五、實(shí)驗(yàn)報(bào)告要求
1.簡(jiǎn)述試驗(yàn)的目的和試驗(yàn)原理;
2.?dāng)⑹龈鞫纬绦蚬δ埽淖冇嘘P(guān)函數(shù)的參數(shù),分析比較實(shí)驗(yàn)結(jié)果; 3.打印出所編寫(xiě)的實(shí)驗(yàn)程序。4.寫(xiě)出本實(shí)驗(yàn)的心得體會(huì)及意見(jiàn)。