久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

數字圖像處理上機報告

時間:2019-05-12 11:24:34下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《數字圖像處理上機報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《數字圖像處理上機報告》。

第一篇:數字圖像處理上機報告

練習一 常用MATLAB圖像處理命令

一、練習目的

1、熟悉并掌握MATLAB工具的使用;

2、實現圖像的讀取、顯示、代數運算和簡單變換。

二、練習環境

Windows操作系統

Matlab 6.5或以上應用軟件

三、練習內容

1、圖像文件的讀寫

(1)imread函數用來實現圖像文件的讀取。輸入以下程序:

A=imread('文件名.擴展名');%用imread函數來讀入圖像 注:設置路徑 imshow(A);%用imshow函數來顯示圖像 得到的結果如圖:

(2)imfinfo函數用來查詢圖像文件信息。輸入以下程序:

info=imfinfo('文件名.擴展名');% 用imfinfo函數查詢圖像文件信息 得到: info =

Filename: '文件名.擴展名'

(4)imshow函數用來顯示圖像。

剛才介紹imread函數時已使用此函數。

(5)colorbar函數將顏色條添加到坐標軸對象中。輸入以下程序:

RGB=imread('***');%圖像讀入

I=rgb2gray(RGB);%把RGB圖像轉換成灰度圖像

imshow(I),colorbar('vert')% 將顏色條添加到坐標軸對象中

得到如圖:

2、圖像處理的基本操作

一、圖像代數運算

(1)imadd函數實現兩幅圖像的相加或者給一幅圖像加上一個常數。給圖像每個像素都增加亮度的程序如下: I=imread('***');J=imadd(I,100);%給圖像增加亮度 subplot(1,2,1),imshow(I)%填充 subplot(1,2,2),imshow(J)結果如圖5。

(2)imsubtract函數實現從一幅圖像中減去一個常數。輸入以下程序實現從一幅圖像中減去一個常數:

(3)immultiply實現兩幅圖像的相乘或者一幅圖像的亮度縮放(圖像乘以小于1或大于1的參數,比較效果)。輸入以下程序:

(4)imdivide函數實現兩幅圖像的除法或一幅圖像的亮度縮放。輸入以下程序:

二、圖像的空間域操作

(1)imrotate函數實現圖像的旋轉。輸入以下程序: I=imread('***');J=imrotate(I,45);%對圖像進行旋轉 subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(J);得到圖:

練習二 數字圖像處理的基本操作

一、練習目的

1、練習使用MATLAB工具進行數字圖像處理;

2、實現圖像的邊緣提取、濾波、直方圖修正等操作。

二、練習環境

Windows操作系統

Matlab 6.5或以上應用軟件

三、練習內容

(1)imresize函數實現圖像的縮放。輸入以下程序:

J=imread('文件名.擴展名');X1=imresize(J,2);%對圖像進行縮放 figure,imshow(J)結果如圖

(2)imcrop函數實現圖像的剪切。輸入以下程序: I=imread('***');I2=imcrop(I);%對圖像進行剪切 subplot(填充),imshow(填充);subplot(填充),imshow(填充);如圖:

圖像變換

(1)fft2函數和ifft2函數分別是計算二維的FFT和反變換。輸入以下程序: f=zeros(100,100);f(20:70,40:60)=1;imshow(f);F=fft2(f);% 計算二維的FFT F2=log(abs(F));%對幅值取對數 imshow(F2),colorbar

(2)dct2函數采用基于FFT的算法,用于實現較大輸入矩陣的離散余弦變換。與之對應,idct2函數實現圖像的二維逆離散余弦變換 輸入以下程序: RGB=imread('***');I=rgb2gray(RGB);J=dct2(I);% 對I進行離散余弦變換 imshow(log(abs(J))),colorbar J(abs(J)<10)=0;K=idct2(J);% 圖像的二維逆離散余弦變換 figure,imshow(I);figure,imshow(K,[0,255])得到如圖:

(3)edge函數用于提取圖像的邊緣。輸入以下程序:

RGB=imread('drum.bmp');I=rgb2gray(RGB);BW=edge(I);% 提取圖像的邊緣 imshow(I),figure,imshow(BW);得到圖

圖像增強、分割和編碼

(1)imhist函數產生圖像的直方圖。A=imread('drum.bmp');%讀入圖像

B=rgb2gray(A);%把RGB圖像轉化成灰度圖像 imshow(B);%顯示灰度圖像

imhist(B)%顯示灰度圖像的直方圖 得到圖

(2)histeq函數用于對圖像的直方圖均衡化。接上面程序:

C=histeq(B);%對圖像B進行均衡化 imshow(C);%顯示圖像

imhist(C);%得到均衡化后的灰度直方圖 得到如圖

filter2函數實現均值濾波。輸入以下程序:

a=imread('noise.drum.jpg');I=rgb2gray(a);imshow(I);K1=filter2(fspecial('average',3),I)/255;% 3?3的均值濾波 K2=補充;

% 5?5的均值濾波 K3=補充;

% 7?7的均值濾波 figure,imshow(K1);figure,imshow(K2);figure,imshow(K3);得到圖

(5)medfilt2函數實現中值濾波。輸入以下程序:

自查函數如何使用,并編程: 結果如圖:

練習三

圖像采樣及圖像類型轉換

一、練習目的

1、熟悉并掌握MATLAB圖像處理工具箱的使用;

2、試對自選圖像分別進行4和16倍剪采樣,查看其剪采樣效果

3、將所給圖,轉換成256級灰度圖像,8級灰度圖像和2值圖像

二、練習環境

MATLAB 6.5或以上版本、WIN XP或以上計算機

三、練習內容

使用MATLAB,對圖像進行減采樣。

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))練習結果如圖

%16倍減抽樣

編程并運行顯示圖像結果:

圖像類型

1、練習內容

試將自選圖,轉換成256級灰度圖像,8級灰度圖像和2值圖像

2、練習方法及程序

使用MATLAB,進行圖像類型變換。

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級灰度圖像

end end figure

imshow(uint8(img8),[0,7])for i=1:wid

for j=1:hei

補充;end end figure

imshow(uint8(img8),[0,2])%得到2值圖像

練習結果如圖

練習四

數字圖像的空間域處理

一、練習目的

1、熟悉并掌握MATLAB圖像處理工具箱的使用;

2、熟悉圖像相加的方法及效果

3、熟悉圖像灰度擴展的方法及效果

4、熟悉圖像縮放、旋轉的方法及效果

二、練習環境

MATLAB 6.5或以上版本、WIN XP或以上計算機

三、練習內容 Part 1(1)選擇一幅圖像***.jpg,設置輸入輸出變換的灰度級范圍,a=0.3, b=0.6, c=0.1, d=0.9;

(2)設置非線性擴展函數的參數c=2;

(3)采用灰度倒置變換函數s=255-r進行圖像變換;

(4)設置二值化圖像的閾值,分別為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]);%設置灰度變換的范圍 subplot(1,3,2);imshow(J);title('線性擴展');I1=double(I);%將圖像轉換為double類型 I2=I1/255;%歸一化此圖像 C=2;K=C*log(1+I2);%求圖像的對數變換 subplot(1,3,3);imshow(K);title('非線性擴展');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');練習結果與分析

(1)練習結果如圖3.7所示。

Part 2 讀取一幅圖片,如***.jpg,設置圖像旋轉的角度分別為450和900,采用圖形旋轉函數imrotate對圖像進行旋轉。程序如下,結果如圖3.10。

I=imread('i_lena.jpg');J=imrotate(I,45);%圖像進行逆時針旋轉,默認采用最近鄰法進行插值處理 K=imrotate(I,90);%默認旋轉出界的部分不被截出 subplot(1,3,1);imshow(I);subplot(1,3,2);imshow(J);subplot(1,3,3);imshow(K);練習結果與分析

(1)練習結果如圖3.10所示。

練習五 數字圖像的頻域處理

一、練習目的

1、熟悉并掌握MATLAB工具的使用;

2、實現圖像離散傅里葉變換并觀察效果

3、實現圖像離散余弦變換并觀察效果

二、練習環境

Windows操作系統 Matlab 6.5或以上應用軟件

三、練習內容 Part 1 選取一幅圖像,進行離散傅里葉變換,再對其分別進行X軸與Y軸上的平移,得其離散傅里葉變換,觀察三幅結果圖。

I=imread('1.bmp');figure(1)imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI);%求離散傅里葉頻譜

%對原始圖像進行二維傅里葉變換,并將其坐標原點移到頻譜圖中央位置

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));練習結果與分析

Part 2 選取一幅圖像,進行離散傅里葉變換,再對其進行一定角度的旋轉,進行離散傅里葉變換。

%構造原始圖像

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])

%對原始圖像進行旋轉

J = imrotate(I,90,'bilinear','crop');figure imshow(J)%求旋轉后圖像的傅里葉頻譜

J1 = fft2(J);F = abs(J1);J2 = fftshift(F);figure imshow(J2,[5 50])練習結果與分析

1)練習結果如圖4.4所示.Part 3 選取一幅圖像,進行離散余弦變換,并對其進行離散余弦反變換,觀察其結果。

%對***.jpg文件計算二維DCT變換 RGB = imread('***.jpg ');figure(1)imshow(RGB)I = rgb2gray(RGB);%真彩色圖像轉換成灰度圖像 J = dct2(I);%計算二維DCT變換 figure(2)imshow(log(abs(J)),[])%圖像大部分能量集中在上左角處 figure(3);J(abs(J)< 10)= 0;%把變換矩陣中小于10的值置換為0,然后用idct2重構圖像 K = idct2(J)/255;imshow(K)練習結果與分析

第二篇:數字圖像處理上機實驗(02091008)

數字圖像處理上機作業

數字圖像處理上機作業

1.產生右圖所示亮塊圖像 f1(x,y)(128×128大小,暗處=0,亮處=255),對其進行FFT:

(1)同屏顯示原圖f1和FFT(f1)的幅度譜圖;

圖像:

(2)若令f2(x,y)=(-1)f1(x,y),重復以上過程,比較二者幅度譜的異同,簡述理由;(3)若將f2(x,y)順時針旋轉45度得到f3(x,y),試顯示FFT(f3)的幅度譜,并與FFT(f2)的幅度譜進行比較。

x+y

結論:不同點:f2的頻譜是對f1頻譜的移位,它時f1的頻譜從原點(0,0)移到了中心(64,64),而得到了一個完整的頻譜。

相同點:頻譜的實質沒有改變,幅度等都沒有發生變化。

(3)若將f2(x,y)順時針旋轉45度得到f3(x,y),試顯示FFT(f3)的幅度譜,并與FFT(f2)的幅度譜進行比較。

源程序: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順時針旋轉45度 subplot(1,3,2);imshow(fft2(f2));%顯示f2的頻譜 subplot(1,3,3);imshow(fft2(f3));%顯示f3的頻譜

結論:均衡化后的直方圖并非完全均勻分布的原因:因為圖像的像素個數和灰度等級均為離散值,而且均衡化后使灰度級并歸。

2.對256?256大小、256級灰度的數字圖像lena進行頻域的理想低通、高通濾波,同屏顯示原圖、幅度譜圖和低通、高通濾波的結果圖。

源代碼: 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的行數到M中,列數到N中 n=2;%對n賦初值 %GLPF濾波,d0=5,15,30(程序中以d0=30為例)d0=30;%初始化d0 n1=floor(M/2);%對M/2進行取整 n2=floor(N/2);%對N/2進行取整 for i=1:M for j=1:N d=sqrt((i-n1)^2+(j-n2)^2);%點(i,j)到傅立葉變換中心的距離 h=1*exp(-1/2*(d^2/d0^2));%GLPF濾波函數

s(i,j)=h*s(i,j);%GLPF濾波后的頻域表示 end end s=ifftshift(s);%對s進行反FFT移動

%對s進行二維反離散的Fourier變換后,取復數的實部轉化為無符號8位整數 s=uint8(real(ifft2(s)));subplot(2,2,3);%創建圖形圖像對象 imshow(s);p=fftshift(fft2(data));[M,N]=size(p);%分別返回p的行數到M中,列數到N中 n=2;%對n賦初值 %GLPF濾波d1=30 d1=30;%初始化d1 n3=floor(M/2);%對M/2進行取整 n4=floor(N/2);%對N/2進行取整 for i=1:M for j=1:N dd=sqrt((i-n3)^2+(j-n4)^2);%點(i,j)到傅立葉變換中心的距離 h1=1-exp(-1/2*(dd^2/d1^2));%GHPF濾波函數

p(i,j)=h1*p(i,j);%GHPF濾波后的頻域表示 end end p=ifftshift(p);%對p進行反FFT移動

%對s進行二維反離散的Fourier變換后,取復數的實部轉化為無符號8位整數 p=uint8(real(ifft2(p)));subplot(2,2,4);%創建圖形圖像對象 imshow(p);

3.對給定的兩種128?128、256級灰度的數字圖像(圖像磁盤文件名分別為Fing_128.img(指紋圖)和Cell_128.img(顯微醫學圖像)進行如下處理:

(1)對原圖像進行直方圖均衡化處理,同屏顯示處理前后圖像及其直方圖,比較異同,并回答為什么數字圖像均衡化后其直方圖并非完全均勻分布。

異同:由于原圖像中目標物的灰度主要集中于低亮度部分,而且象素總數比較多,經過直方圖均衡后,目標物的所占的灰度等級得到擴展,對比度加強,使整個圖像得到增強。

數字圖像均衡化后其直方圖并非完全均勻分布的原因:由于原圖像中目標物的灰度主要集中于低亮度部分,而且象素總數比較少,而所占的灰度等級比較多,因此圖像的對比度比較好,亮度比較大,整體圖像清晰。經過直方圖均衡后,目標物的所占的灰度等級被壓縮,對比度減弱,反而使目標物變的難以辨認。

數字圖像均衡化后,其直方圖并非完全均勻分布,這是因為圖像的象素個數和灰度等級均為離散值;而且均衡化使灰度級并歸,因此,均衡化后,其直方圖并非完全均勻分布。

源代碼: figure(1);fid=fopen('D:imgcell_128.img','r');

%打開無格式文件 data1=(fread(fid,[128,128],'uint8'))';%將打開的文件讀入到data1 subplot(4,2,1);

%將figure(1)分成4*2的8個子窗口, data11=uint8(data1);imshow(data11);%圖象顯示

title('CELL','Color','b');

%加標題 subplot(4,2,2);title('原圖像直方圖');imhist(data11);subplot(4,2,3);

%取第二個子窗口

data2=uint8(data1);%將灰度圖象轉換成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');%打開無格式文件

data3=(fread(fid,[128,128],'uint8'))';%將打開的文件讀入到data3 data31=uint8(data3);

%將灰度圖象轉換成uint8格式 imshow(data31);

%顯示灰度圖象 title('FING','Color','b');subplot(4,2,6)imhist(data31);title('原圖像直方圖');subplot(4,2,7);

data4=uint8(data3);%將灰度圖象轉換成uint8格式 d=histeq(data4);

%直方圖均衡化

imshow(d,256);

%顯示均衡化圖象,256可缺省 title('均衡化','Color','b');

subplot(4,2,8);imhist(d);title('均衡化后原圖像直方圖');(2)對原圖像加入高斯噪聲,用4-鄰域平均法平滑加噪聲圖像(圖像四周邊界不處理,下同),同屏顯示原圖像、加噪圖像和處理后的圖像。

① 不加門限;

② 加門限 T?2f(m,n),(其中f(m,n)?

1N2??f(i,j))

ij

源代碼: % CELL figure(2);fid=fopen('D:imgcell_128.img','r');

%打開無格式文件

data1=(fread(fid,[128,128],'uint8'))';%將打開的文件讀入到data1 I=uint8(data1);I1=imnoise(I,'gaussian');%加乘性噪聲 H1=[0 1 0;1 0 1;0 1 0]/4;%4×4領域模板 J=imfilter(I,H1);%領域平均

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兩種情況)對256?256大小、256級灰度的數字圖像lena進行銳化處理,顯示處理前、后圖像。

源代碼:

%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時的拉普拉斯算子 LP2=imfilter(I,L2,'replicate');% α=2時的拉普拉斯算子

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)]

則回答如下問題:

① f(m,n)、g1(m,n)和g2(m,n)之間有何關系? ② g2(m,n)代表圖像中的哪些信息? ③ 由此得出圖像銳化的實質是什么?

①因為g2(m,n)????2f(m,n),所以f(m,n)、g1(m,n)和g2(m,n)之間有以下關系:

g1(m,n)?f(m,n)?g2(m,n)

②g2(m,n)代表了原圖像中的二階梯度信息;g1(m,n)是邊緣增強后的數字圖像; ③由此可以得出:圖像銳化的實質是將原圖像與梯度信息疊加(梯度信息所占的比例由,相當于對目標物的邊緣進行了增強。?的大小決定,?值越大則梯度信息所占的比例越大)

5.分別利用Roberts、Prewitt和Sobel邊緣檢測算子,對256?256大小、256級灰度的數字圖像lena進行邊緣檢測,顯示處理前、后圖像。圖像:

源代碼:

I=imread('D:imgLENA256.bmp');% 讀入原圖像 figure(1)%Roberts梯度法銳化

subplot(2,2,1);imshow(I);title('原始圖像');J=double(I);[IX,IY]=gradient(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、學習數字圖像處理課程的心得體會,該課程在哪些方面需要改進,對該課程或者任課老師有哪些意見或建議。

通過對數字圖像處理課程的認真學習,在課堂聽課和課余實踐中了解了數字圖像的基礎知識,培養了一定的軟件編程能力,在努力完成課堂作業的同時,發現了對圖像方面的興趣。老師認真負責,布置合理的作業。但希望能夠通過更加豐富的授課方式,提高更多人學習該門課程的興趣和主動性。也同樣希望老師能夠加強點名和作業的驗收,督促學生更加認真的學習知識。

第三篇:數字圖像處理上機作業

數字圖像處理上機實驗題

一、產生右圖所示圖像 f1(m,n),其中圖像大小為256×256,中間亮條為128×32,暗處=0,亮處=100。對其進行 FFT:

1、屏顯示原圖 f1(m,n)和FFT(f1)的幅度譜圖;

2、令f2(m,n)=(-1)^(m+n)*f1(m,n),重復以上過程,比較二者幅度譜的異同,簡述理由;

3、若將f2(m,n)順時針旋轉 90 度得到f3(m,n),試顯示 FFT(f3)的幅度譜,并與 FFT(f2)的幅度譜進行比較;

4、若將f1(m,n)順時針旋轉 90 度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),試顯示 FFT(f5)的幅度譜,并指出其與 FFT(f1)和FFT(f4)的關系;

5、若令f6(m,n)=f2(m,n)+f3(m,n),試顯示 FFT(f6)的幅度譜,并指出其與 FFT(f 2)和FFT(f3)的關系,比較 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旋轉圖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)');

結果

分析

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,即幅值相加。

二、產生教材 104 頁題圖 4.18(右圖)所示的二值圖像(白為1,黑為0),編程實現習題4.18 所要求的處理(3*3 的平均濾波和中值濾波)功能(圖像四周邊界不考慮,處理結果按四舍五入仍取(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領域平均');subplot(2,2,4)imshow(J1);

title('領域平均圖像直方圖')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('中值濾波圖像直方圖')

結果

三、產生教材 104 頁題圖 4.16 所示的灰度圖像(白為255,黑為0),分別加入高斯白噪聲和椒鹽噪聲,再分別進行 3′ 3 的平均濾波和中值濾波,顯示原圖像、加噪圖像和濾波結果圖像,并比較四種濾波結果。

代碼

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¨?·??í???');

結果

四、對某一灰度圖像,進行如下處理:

(1)分別利用 Roberts、Prewitt和Sobel 邊緣檢測算子進行邊緣檢測;

(2)將Roberts、Prewitt和Sobel 邊緣檢測算子修改為銳化算子,對原圖像進行銳化,同屏顯示原圖像、邊緣檢測結果和銳化后圖像,說明三者之間的關系。

代碼

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');

結果

二值化。

五、編程實現教材 214 頁所給圖像門限化分割的迭代閾值算法,實現對某一灰度圖像的代碼

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('迭代閾值算法二值化');

結果

心得體會

通過此次作業讓我明白了很多,實際操作起來往往比理論所想的要復雜很多。當然,在課設的進行過程中,我還是遇到了不少問題。例如,起初由于我對句柄使用以及一些函數使用的不恰當。隨著課設的進行,對matlab的的熟悉度逐步加深。

總體來說,此次的課程設計,還是較為滿意的。它不但鞭策著我去鞏固matlab的基礎理論知識,還提高了我對matlab的實際操作運用,使得理論與實踐相結合,為進一步學習matlab打下堅實的基礎;同時,在實踐的工程中,也讓我體會到一種努力付出并得到回報的滿足感覺。

第四篇:《數字圖像處理》

實驗五 圖像的幾何變換

一.實驗目的及要求

掌握圖像幾何變換的基本原理,熟練掌握數字圖像的縮放、旋轉、平移、鏡像和轉置的基本原理及其MATLAB編程實現方法。

二、實驗內容

(一)研究以下程序,分析程序功能;輸入執行各命令行,認真觀察命令執行的結果。熟悉程序中所使用函數的調用方法,改變有關參數,觀察試驗結果。

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 ');

說明:

?注意觀察不同插值方法的圖像表現; ?改變圖像縮放因子Scale,重做上述實驗。2.圖像旋轉

clear all, close all I = imread('cameraman.tif');Theta = 45;

% 將圖像逆時針旋轉45?。

J1 = imrotate(I, Theta, 'nearest');

% using the nearest neighbor interpolation Theta =-45;

% 將圖像順時針旋轉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 %-------

圖像旋轉30順時針逆時針

clear all, close all I = imread('cameraman.tif');Theta = 30;

% 將圖像逆時針旋轉30。

J1 = imrotate(I, Theta, 'nearest');

% using the nearest neighbor interpolation Theta =-30;

% 將圖像順時針旋轉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 說明:

?注意觀察不同插值方法和輸出圖像后處理方法的圖像表現; ?改變旋轉角度大小和方向,重做上述實驗。

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編程實現以下圖像幾何變換(參考自編講義相關章節)

1.圖像扭曲變換 2.球面變換

三、實驗設備

1.PIII以上微機; 2.MATLAB6.5;

四、預習與思考

1.預習實驗內容,閱讀教材熟悉實驗原理;

2.查閱資料,熟悉實驗中涉及的有關MATLAB函數;

3.利用課余時間,采用MATLAB底層函數編程實現實驗內容

(二)中的圖像平移、圖像轉置等幾何變換。

五、實驗報告要求

1.簡述試驗的目的和試驗原理;

2.敘述各段程序功能,改變有關函數的參數,分析比較實驗結果; 3.打印出所編寫的實驗程序。4.寫出本實驗的心得體會及意見。

實驗六

數字圖像處理應用

一.實驗目的及要求

1.利用MATLAB提供的圖像處理函數實現圖像中物體屬性的測量; 2.訓練綜合運用MATLAB圖像處理函數的能力; 3.了解數字圖像處理基本應用。

二、實驗內容

以大米粒特性測量為例,綜合應用課程中圖像分割、形態學濾波、圖像增強、圖像特征提取等圖像處理方法,實現大米粒特性自動測量。實驗過程簡述:

1. 讀取和顯示圖像 2. 估計圖像背景 3. 獲取背景均勻的圖像 4. 圖像增強 5. 圖像二值化分割 6. 區域標記及為彩色處理

7. 測量圖像中的區域特性(面積、質心等)

8.統計大米粒的特性分布規律。

(一)研究以下程序,分析程序功能;輸入執行各命令行,認真觀察命令執行的結 果。熟悉程序中所使用函數的調用方法,改變有關參數,觀察試驗結果。

% 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

(詳見MATLAB IPT的 幫助文檔demo中的Correcting Nonuniform Illumination)

(二)查看MATLAB IPT 幫助文檔,研究其它應用演示

三、實驗設備 1.PIII以上微機; 2.MATLAB6.5;

四、預習與思考

1.預習實驗內容,閱讀教材熟悉實驗原理; 2.查閱資料,熟悉實驗中涉及的有關函數。

3.利用課余時間,采用MATLAB函數編程實現實驗內容

(二)。

五、實驗報告要求

1.簡述試驗的目的和試驗原理;

2.敘述各段程序功能,改變有關函數的參數,分析比較實驗結果; 3.打印出所編寫的實驗程序。4.寫出本實驗的心得體會及意見。

第五篇:數字圖像處理

中南大學

數字圖像處理實驗 實驗名稱:空間濾波和頻域濾波

班級:電子信息0802班

姓名:李哲 學號:0909080609 實驗日期:2010年12月22日

目錄

一,實驗目的???????????????????????3 二,給圖像添加噪聲????????????????????4 三,對被噪聲污染的圖像進行中值濾波和均值濾波???????5 四,對圖像進行空間域的銳化????????????????6 五,MATLAB以外函數空間濾波和圖像銳化??????????7 六,自帶函數傅立葉變換和反變換??????????????8 七,低通濾波器程序????????????????????9 八,心得體會 ??????????????????????10 九,參考文獻 ??????????????????????10

一、實驗目的 1,空間濾波:

圖像平滑主要目的是減少噪聲。噪聲有很多種類,不同的噪聲有不同的抑制措施。本實驗要求用平滑線性濾波和中值濾波2種最典型、最常用的處理算法進行程序設計,學習如何對已被噪聲污染的圖像進行“凈化”。通過平滑處理,對結果圖像加以比較,得出自己的實驗結論。學習如何用銳化處理技術來加強圖像的目標邊界和圖像細節,對圖像進行梯度算子、拉普拉斯算子,使圖像的某些特征(如邊緣、輪廓等)得以進一步的增強及突出。本實驗銳化處理主要在空間域中進行 2,頻域濾波:

掌握傅里葉變換的基本性質; 掌握傅里葉正變換和反變換; 通過實驗了解二維頻譜的分布特點; 掌握怎樣利用傅立葉變換進行頻域濾波

利用MATLAB程序數字圖像的傅立葉變換并且進行頻域濾波

二,給圖像添加椒鹽噪聲或者高斯噪聲: 原理:利用MATLAB自帶函數添加噪聲 程序代碼:A=imread('onion.png');I=rgb2gray(A);imshow(I);J = imnoise(I,'salt & pepper',0.05);figure,imshow(J),title('椒鹽噪聲');%添加椒鹽噪聲 K = imnoise(I,'gaussian',0,0.03);

figure,imshow(K),title('高斯噪聲');%添加高斯噪聲

三,對被噪聲污染的圖像進行中值濾波和均值濾波: 原理:自帶函數進行中值濾波和均值濾波 源程序:A=imread('onion.png');I=rgb2gray(A);J = imnoise(I,'salt & pepper',0.05);k2=medfilt2(J,[5 5]);k3=medfilt2(J,[7 7]);imshow(J),title('原圖');figure,imshow(k2),title('中值濾波5*5模板');figure,imshow(k3),title('中值濾波7*7模板');

四,對圖像進行空間域的銳化: 原理:自帶函數進行空間銳化。源程序:I=imread('coins.png');subplot(121),imshow(I),title('原圖像');H=fspecial('sobel');I2=filter2(H ,I);subplot(122),imshow(I2),title('sobel算子銳化圖像');

五,MATLAB以外函數空間濾波和圖像銳化:

源程序:I = imread('eight.tif');J = imnoise(I,'salt & pepper',0.02);K = medfilt2(J);imshow(J);title('噪聲干擾圖像')figure, imshow(K);title('medfilt2濾波圖像')X=J;a=2;b=2;k=floor(a*b/2)+1;[M,N]=size(X);uint8 Y=zeros(M,N);funBox=zeros(a,b);temp=zeros(a*b);

for i=1:M-a

for j=1:N-b

funBox=X(i:i+a,j:j+b);

temp=funBox(:);

tempSort=sort(temp);

Y(i,j)=tempSort(k);

end;end;figure, imshow(Y);title('濾波圖像')

六,利用Matlab的圖像處理工具箱中提供的函數實現圖像的傅立葉變換和反變換: 源程序:

A=imread('onion.png');f=rgb2gray(A);subplot(131),imshow(f),title('原圖');F=fft2(f);% 快速傅立葉變換

subplot(132),imshow(F),title('傅里葉變換')Fabs=abs(F);% 求幅頻絕對值 Fc=fftshift(Fabs);% 中心移位 SFc=log(1+Fc);% 對數變換

iFc1=ifftshift(Fc);% 中心移位的逆變換,絕對值 iF2=ifft2(iFc1);% 快速傅立葉變換的逆變換

subplot(133),imshow(iF2),title('快速傅立葉變換的逆變換')

七,低通濾波器程序:

I=imread('testpat1.png');subplot(221),imshow(I);title('原始圖像')J1=imnoise(I,'gaussian',0.02);% 疊加高斯白噪聲

subplot(222),imshow(J1);title('添加高斯白噪聲的圖像')f=double(J1);

% 數據類型轉換 g=fft2(f);

% 傅立葉變換 g=fftshift(g);

[M,N]=size(g);nn=2;

% 二階巴特沃斯(Butterworth)低通濾波器 d0=50;

% 設置截止頻率 m=fix(M/2);n=fix(N/2);for i=1:M for j=1:N

d=sqrt((i-m)^2+(j-n)^2);

h=1/(1+0.414*(d/d0)^(2*nn));% 計算低通濾波器傳遞函數

result(i,j)=h*g(i,j);end end result=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));subplot(223),imshow(J3);title('低通濾波后圖像')

心得體會

1,進一步熟悉了Matlab軟件、編程以及圖像處理工具箱 2,學會利用自帶函數對圖像做簡單的處理,例如:均值化等。3,熟練了一些基本函數的運用,例如fspecial,imfilter等。4,加深了對MATLAB編程的理解。

5,對于試驗中的出現的一些問題,懂得怎樣去處理。6,通過實際操作,增強了自己的動手能力,把理論用于實踐。

參考文獻:數字圖像處理第二版

MATLAB教程

下載數字圖像處理上機報告word格式文檔
下載數字圖像處理上機報告.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    數字圖像處理學習報告

    1 數字圖像處理學習報告 在這一學期,我選修了《數字圖像處理基礎》這門課程,同時,老師還講授了一些視頻處理的知識。在這里,梳理一下這學期學到的知識,并提出一些我對這門課程的......

    數字圖像處理讀書報告11

    數字圖像處理讀書報告11 ——圖像分割 ——錢增磊 前言:由于在圖像的應用當中,我們經常要將感興趣的區域提取出來用來識別等其他用途,這就涉及到一個很關鍵的一個應用,便是圖像......

    數字圖像處理課設報告

    數字圖像處理課程設計報告 細胞識別 目錄 第一部分 1、實驗課題名稱--------------------3 2、實驗目的--------------------------3 第 1 頁 3、實驗內容概要------------......

    數字圖像處理期中作業報告

    西安科技大學通信學院 數字圖像處理實驗報告 直 方 圖 均 衡 化 西安科技大學通信學院 題目:直方圖均衡化 一、實驗目的 1. 通過實驗理解直方圖均衡化的原理及步驟; 2. 編程實......

    數字圖像處理讀書筆記

    數字圖像處理讀書筆記 本學期的數字圖像處理課程已經進行了3周了,通過這3周的學習讓我對數字圖像處理有了一定的認知和理解。數字圖像處理又稱為計算機圖像處理,它是指將圖像......

    數字圖像處理實驗報告

    實 驗 報 告 書 系部學生專業班實驗 名稱姓名名稱 級時間:: : : : 實驗一 直方圖均衡 一、實驗目的 在學習圖像直方圖的概念、計算方法、性質和相關應用基礎上,生成、繪制圖像......

    數字圖像處理實驗報告

    數字圖像處理 實驗報告 目錄 1. 數字圖像處理簡介2. 實驗目的3. 實驗內容4. 實驗結果及代碼展示5. 算法綜述6. Matlab優勢7. 總結8. 存在問題 一、 數字圖像處理簡介......

    數字圖像處理實驗報告

    數字圖像處理 實驗報告 班級:通信103 學號:201027201 姓名:計富威 指導教師:孫潔 實驗一 MATLAB數字圖像處理初步 一、實驗目的與要求 1.熟悉及掌握在MATLAB中能夠處理哪些格......

主站蜘蛛池模板: 欧美大屁股bbbbxxxx| 无码人妻精品一区二区蜜桃百度| 欧美搡bbbbb搡bbbbb| 青青青青国产免费线在线观看| 国产口爆吞精在线视频| 精品国产18久久久久久| 国产乱人伦偷精品视频免下载| 麻豆成人久久精品综合网址| 日产亚洲一区二区三区| 老熟妻内射精品一区| 亚洲熟妇无码av不卡在线| 国产美女牲交视频| 天天躁躁水汪汪人碰人| 国产真实露脸乱子伦| 国内a∨免费播放| 亚洲精品无码不卡av| 国内免费久久久久久久久| 香蕉久久国产av一区二区| 日韩一区二区三区射精| 99久久人人爽亚洲精品美女| 成人精品一区二区三区在线观看| 精品无人国产偷自产在线| 国产精品一区二区国产主播| 国产亚洲精品久久久久久男优| 福利所第一导航福利| 男人的天堂av网站| 国产在线国偷精品免费看| 日韩免费无砖专区2020狼| 亚洲一线二线三线写真| 狠狠躁天天躁无码中文字幕图| 亚洲成无码人在线观看| 少妇白浆高潮无码免费区| 尤物yw午夜国产精品视频| 久久精品国产久精国产思思| 欧美精品中文字幕亚洲专区| 全免费又大粗又黄又爽少妇片| 成人区人妻精品一熟女| 国产av导航大全精品| 国产午夜视频在线观看| 台湾无码av一区二区三区| 亚洲欧美日韩中字视频三区|