《2023年数字图像处理实习报告(精选多篇).docx》由会员分享,可在线阅读,更多相关《2023年数字图像处理实习报告(精选多篇).docx(189页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年数字图像处理实习报告(精选多篇) 推荐第1篇:数字图像处理 中南大学 数字图像处理实验 实验名称:空间滤波和频域滤波 班级:电子信息0802班 姓名:李哲 学号:0909080609 实验日期:2023年12月22日 目录 一,实验目的3 二,给图像添加噪声4 三,对被噪声污染的图像进行中值滤波和均值滤波5 四,对图像进行空间域的锐化6 五,MATLAB以外函数空间滤波和图像锐化7 六,自带函数傅立叶变换和反变换8 七,低通滤波器程序9 八,心得体会 10 九,参考文献 10 一、实验目的 1,空间滤波: 图像平滑主要目的是减少噪声。噪声有很多种类,不同的噪声有不同的抑制措施。本实验
2、要求用平滑线性滤波和中值滤波2种最典型、最常用的处理算法进行程序设计,学习如何对已被噪声污染的图像进行“净化”。通过平滑处理,对结果图像加以比较,得出自己的实验结论。学习如何用锐化处理技术来加强图像的目标边界和图像细节,对图像进行梯度算子、拉普拉斯算子,使图像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。本实验锐化处理主要在空间域中进行 2,频域滤波: 掌握傅里叶变换的基本性质; 掌握傅里叶正变换和反变换; 通过实验了解二维频谱的分布特点; 掌握怎样利用傅立叶变换进行频域滤波 利用MATLAB程序数字图像的傅立叶变换并且进行频域滤波 二, 给图像添加椒盐噪声或者高斯噪声: 原理:利用MA
3、TLAB自带函数添加噪声 程序代码:A=imread(onion.png); I=rgb2gray(A); imshow(I); J = imnoise(I,salt & pepper,0.05); figure,imshow(J),title(椒盐噪声);%添加椒盐噪声 K = imnoise(I,gauian,0,0.03); figure,imshow(K),title(高斯噪声);%添加高斯噪声 三, 对被噪声污染的图像进行中值滤波和均值滤波: 原理:自带函数进行中值滤波和均值滤波 源程序:A=imread(onion.png); I=rgb2gray(A); J = imnoise(
4、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),ims
5、how(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
6、: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
7、(傅里叶变换) 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,gauian,0.02);% 叠加高斯白噪声 subplot(222
8、),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=ifftsh
9、ift(result); J2=ifft2(result); J3=uint8(real(J2); subplot(223),imshow(J3); title(低通滤波后图像) 心得体会 1, 进一步熟悉了Matlab软件、编程以及图像处理工具箱 2, 学会利用自带函数对图像做简单的处理,例如:均值化等。 3, 熟练了一些基本函数的运用,例如fspecial,imfilter等。 4, 加深了对MATLAB编程的理解。 5, 对于试验中的出现的一些问题,懂得怎样去处理。 6, 通过实际操作,增强了自己的动手能力,把理论用于实践。 参考文献:数字图像处理第二版 MATLAB教程 推荐第2篇:数
10、字图像处理 实验五 图像的几何变换 一实验目的及要求 掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB编程实现方法。 二、实验内容 (一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。 1.图像缩放 clear all, close all I = imread(cameraman.tif); Scale = 1.35; % 将图像放大1.35倍 J1 = imresize(I, Scale, nearest); % using the nearest nei
11、ghbor 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
12、% 查看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- u
13、sing the nearest neighbor interpolation ); figure, imshow(J2), title(Resized Image- using the bilinear interpolation ); 3 说明: 注意观察不同插值方法的图像表现; 改变图像缩放因子Scale,重做上述实验。 2.图像旋转 clear all, close all I = imread(cameraman.tif); Theta = 45; % 将图像逆时针旋转45。 J1 = imrotate(I, Theta, nearest); % using the nearest
14、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( Rotat
15、ed Image- using the bilinear interpolation ); % 查看imrotate使用帮助 5 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, bil
16、inear, 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 8 说明: 注意观察不同插值方法和输出图像后处理方法的图像
17、表现; 改变旋转角度大小和方向,重做上述实验。 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编程实现以下图像几何变换(参考自编讲义相关章节) 10 1图像扭曲变换 2
18、球面变换 三、实验设备 1PIII以上微机; 2MATLAB6.5; 四、预习与思考 1预习实验内容,阅读教材熟悉实验原理; 2查阅资料,熟悉实验中涉及的有关MATLAB函数; 3利用课余时间,采用MATLAB底层函数编程实现实验内容 (二)中的图像平移、图像转置等几何变换。 五、实验报告要求 1简述试验的目的和试验原理; 2叙述各段程序功能,改变有关函数的参数,分析比较实验结果; 3打印出所编写的实验程序。 4写出本实验的心得体会及意见。 实验六 数字图像处理应用 一实验目的及要求 1利用MATLAB提供的图像处理函数实现图像中物体属性的测量; 2训练综合运用MATLAB图像处理函数的能力;
19、 3了解数字图像处理基本应用。 二、实验内容 以大米粒特性测量为例,综合应用课程中图像分割、形态学滤波、图像增强、图像特征提取等图像处理方法,实现大米粒特性自动测量。 实验过程简述: 1 读取和显示图像 2 估计图像背景 3 获取背景均匀的图像 4 图像增强 5 图像二值化分割 6 区域标记及为彩色处理 7 测量图像中的区域特性(面积、质心等) 8统计大米粒的特性分布规律。 (一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结 11 果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。 % Read and Display an Image clear, clo
20、se 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,y
21、dir,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, imsh
22、ow(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,b
23、asic) 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 帮助文档,研究其它应用演示 三、实验设备 16 1PIII以上微机; 2M
24、ATLAB6.5; 四、预习与思考 1预习实验内容,阅读教材熟悉实验原理; 2查阅资料,熟悉实验中涉及的有关函数。 3利用课余时间,采用MATLAB函数编程实现实验内容 (二)。 五、实验报告要求 1简述试验的目的和试验原理; 2叙述各段程序功能,改变有关函数的参数,分析比较实验结果; 3打印出所编写的实验程序。 4写出本实验的心得体会及意见。 推荐第3篇:数字图像处理上机报告 练习一 常用MATLAB图像处理命令 一、练习目的 1、熟悉并掌握MATLAB工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 二、练习环境 Windows操作系统 Matlab 6.5或以上应用软件 三、
25、练习内容 1、图像文件的读写 (1)imread函数用来实现图像文件的读取。 输入以下程序: A=imread(文件名.扩展名);%用imread函数来读入图像 注:设置路径 imshow(A);%用imshow函数来显示图像 得到的结果如图: (2)imfinfo函数用来查询图像文件信息。 输入以下程序: info=imfinfo(文件名.扩展名);% 用imfinfo函数查询图像文件信息 得到: info = Filename: 文件名.扩展名 (4)imshow函数用来显示图像。 刚才介绍imread函数时已使用此函数。 (5)colorbar函数将颜色条添加到坐标轴对象中。 输入以下程
26、序: 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函数实现从一幅图像中减去一个常
27、数。 输入以下程序实现从一幅图像中减去一个常数: (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、练习使用MAT
28、LAB工具进行数字图像处理; 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(填充); 如图: 图像变换
29、 (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),c
30、olorbar J(abs(J) (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
31、=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; % 33的均值滤波 K2=补充; % 55的均值滤波 K3=补充; % 77的均值滤波 figure,imshow(K1); figure,imshow(K2); figure,imshow(K3); 得到图 (5)medfilt2函
32、数实现中值滤波。 输入以下程序: 自查函数如何使用,并编程: 结果如图: 练习三 图像采样及图像类型转换 一、练习目的 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
33、); 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
34、,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、熟悉图像相加的
35、方法及效果 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(原
36、图); 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); %将此图像二值化,阈值为
37、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=
38、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轴上的平移,
39、得其离散傅里叶变换,观察三幅结果图。 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); 练习结果与分析 Pa
40、rt 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
41、(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)
42、; J(abs(J) 推荐第4篇:数字图像处理学习报告 1 数字图像处理学习报告 在这一学期,我选修了数字图像处理基础这门课程,同时,老师还讲授了一些视频处理的知识。在这里,梳理一下这学期学到的知识,并提出一些我对这门课程的建议。 图像处理是指对图像信息进行加工,从而满足人类的心理、视觉或者应用的需求的一种行为。图像处理方法一般有数字法和光学法两种,其中数字法的优势很明显,已经被应用到了很多领域中,相信随着科学技术的发展,其应用空间将会更加广泛。数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程.数字图像处理是从20世纪60年代以来随着计算机技术和VLSL的发展而产生、发展和不断成熟起来的一个新兴技术领域。数字图像处理技术其实就是利用各种数字硬件与计算机,对图像信息通过转换而得到的电信号进行相应的数学运算,例如图像去噪、图像分割、提取特征、图像增强、图像复原等,以便提高图像的实用性。其特点是处理精度比较高,并且能够对处理软件进行改进来优化处理效果,操作比较方便,但是由于数字图像需要处理的数据量一般很大,因此处理速度有待提高。目前,随着计算机技术的不断发展,计算机的运算速度得到了很大程度的提高。在短短的历史中,它却广泛应用于几乎所有与成像有关的领域,在理论上和实际应