数字图像处理上机报告

时间: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('¸ß˹ͼÏñ');subplot(3,2,2)imshow(s)

title('½·ÑÎͼÏñ');subplot(3,2,3)imshow(G1)

title('ƽ¾ùÂ˲¨¸ß˹ͼÏñ');subplot(3,2,5)imshow(G2)

title('ÖÐÖµÂ˲¨¸ß˹ͼÏñ');subplot(3,2,4)imshow(S1)

title('ƽ¾ùÂ˲¨½·ÑÎͼÏñ');subplot(3,2,6)imshow(S2)

title('ÖÐÖµÂ˲¨½·ÑÎͼÏñ');

结果

四、对某一灰度图像,进行如下处理:

(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中能够处理哪些格......