2023年数字图像处理基本运算实验报告【精彩多篇】

Asterix Labs中文网
领取MOLI红包
栏目分类
Asterix Labs中文网
BLD中文网
你的位置:Asterix Labs中文网 > BLD中文网 > 2023年数字图像处理基本运算实验报告【精彩多篇】
2023年数字图像处理基本运算实验报告【精彩多篇】
发布日期:2025-01-03 18:07    点击次数:81
寄语:2023年数字图像处理基本运算实验报告【精彩多篇】为好范文网的会员投稿推荐,但愿对你的学习工作带来帮助。数字图像处理基本运算实验报告 篇一数字图像处理实验报告目录1.数字图像处理简介2.实验目的3.实验内容4.实验结果及代码展示5.算法综述优势7.总结8.存在问题一、数字图像处理简介图像处理,是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。图像处理是信号处理在图像域上的一个应用。目前大多数的图像是以数字形式存储,因而图像处理很多情况下指数字图像处理。此外,基于光学理论的处理方法依然占有重要的地位。图像处理是信号处理的子类,另外与计算机科学、人工智能等领域也有密切的关系。传统的一维信号处理的方法和概念很多仍然可以直接应用在图像处理上,比如降噪、量化等。然而,图像属于二维信号,和一维信号相比,它有自己特殊的一面,处理的方式和角度也有所不同。二、实验目的巩固所学知识,提高所学能力三、实验内容利用matlab的gui程序设计一个简单的图像处理程序,并含有如下基本功能: 1.读入一幅rgb图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示rgb图像和灰度图像,注上文字标题 2.对给定图像进行旋转3.对给定的图像添加噪声(椒盐噪声、高斯噪声)四、实验结果及代码展示1.软件设计界面2.各模块功能展示以及程序代码(1)读入一幅rgb图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示rgb图像和灰度图像,注上文字标题效果展示:代码:a = imread('c:documents and ');i = rgb2gray(a);i = im2bw(a,0.5);subplot(3,1,1);imshow(a);title('源图像')subplot(3,1,2);imshow(i);title('灰度图像')subplot(3,1,3);imshow(i);title('二值图像')(2)图像旋转 原图效果展示:代码:clc;clear all;close all;img=imread('d:my documentsmy ');img=double(img);[h w]=size(img);alpha=pi/4;wnew=w*cos(alpha)+h*sin(alpha);hnew=w*sin(alpha)+h*cos(alpha);wnew=ceil(wnew);hnew=ceil(hnew);u0=w*sin(alpha);t=[cos(alpha),sin(alpha);-sin(alpha),cos(alpha)];imgnew2=zeros(hnew,wnew);imgnew1=zeros(hnew,wnew);for u=1:hnewfor v=1:wnewtem=t*([u;v]-[u0;0]);x=tem(1);y=tem(2);if x>=1&&x=1&&yelsex=x_up;endif(y-y_low)elsey=y_up;endp1=img(x_low,y_low);p2=img(x_up,y_low);p3=img(x_low,y_low);p4=img(x_up,y_up);s=x-x_low;t=y-y_low;imgnew1(u,v)=img(x,y);imgnew2(u,v)=(1-s)*(1-t)*p1+(1-s)*t*p3+(1-t)*s*p2+s*t*p4;endend endfigure;imshow(imgnew2,[]);b=imrotate(img,alpha/pi*180);figure;imshow(b,[]);(3)对给定的图像添加噪声(斑点噪声、高斯噪声)效果展示:代码:i= imread('d:my documentsmy ');figure,subplot(211);imshow(i);title('原图');j1=imnoise(i,'gaussian',0,0.02);subplot(223);imshow(j);title('添加高斯噪声');j=imnoise(i,'speckle',0.04);subplot(224);imshow(j);title('添加斑点噪声');五、算法综述 灰度图像:一幅完整的图像,是由红色、绿色、蓝色三个通道组成的。红色、绿色、蓝色三个通道的缩览图都是以灰度显示的。用不同的灰度色阶来表示“ 红,绿,蓝”在图像中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255。通道是整个photoshop显示图像的基础。色彩的变动,实际上就是间接在对通道灰度图进行调整。通道是photoshop处理图像的核心部分,所有的色彩调整工具都是围绕在这个核心周围使用的。在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像。灰度图像经常是在单个电磁波频谱如可见光内测量每个像素的亮度得到的。用于显示的灰度图像通常用每个采样像素 8 位的非线性尺度来保存,这样可以有 256 级灰度。这种精度刚刚能够避免可见的条带失真,并且非常易于编程。在医学图像与遥感图像这些技术应用中经常采用更多的级数以充分利用每个采样 10 或 12 位的传感器精度,并且避免计算时的近似误差。在这样的应用领域每个采样 16 位即 65536 级得到流行。二值图像:是指每个像素不是黑就是白,其灰度值没有中间过渡的图像。二值图像一般用来描述文字或者图形,其优点是占用空间少,缺点是,当表示人物,风景的图像时,二值图像只能描述其轮廓,不能描述细节。这时候要用更高的灰度级。二值图像是每个像素只有两个可能值的数字图像。人们经常用黑白、b&w、单色图像表示二值图像,但是也可以用来表示每个像素只有一个采样值的任何图像,例如灰度图像等。二值图像中所有的像素只能从0和1这两个值中取,因此在matlab中,二值图像用一个由0和1组成的二维矩阵表示。这两个可取的值分别对应于关闭和打开,关闭表征该像素处于背景,而打开表征该像素处于前景。以这种方式来操作图像可以更容易识别出图像的结构特征。二值图像操作只返回与二值图像的形式或结构有关的信息,如果希望对其他类型的图像进行同样的操作,则首先要将其转换为二进制的图像格式,可以通过调用matlab提供的im2bw()来实现。二值图像经常出现在数字图像处理中作为图像掩码或者在图像分割、二值化和dithering的结果中出现。一些输入输出设备,如激光打印机、传真机、单色计算机显示器等都可以处理二值图像。二值图像经常使用位图格式存储。二值图像可以解释为二维整数格z,图像变形处理领域很大程度上就是受到这个观点启发。图像旋转:图像旋转是指图像以某一点为中心旋转一定的角度,形成一幅新的图像的过程。当然这个点通常就是图像的中心。既然是按照中心旋转,自然会有这样一个属性:旋转前和旋转后的点离中心的位置不变。根据这个属性,我们可以得到旋转后的点的坐标与原坐标的对应关系。由于原图像的坐标是以左上角为原点的,所以我们先把坐标转换为以图像中心为原点。假设原图像的宽为w,高为h,(x0,y0)为原坐标内的一点,转换坐标后的点为(x1,y1)。那么不难得到: x1 = x0-w/2;y1 =-y0 + h/2;在新的坐标系下,假设(x0,y0)距离原点的距离为r,点与原点之间的连线与x轴的夹角为b,旋转的角度为a,旋转后的点为(x1,y1)噪声:是电路或系统中不含信息量的电压或电流。在工业与自然界中,存在着各种干扰源(噪声源),如大功率电力电子器件的接入、大功率用电设备的开启与断开、雷击闪电等都会使空间电场和磁场产生有序或无序的变化,这些都是干扰源(或噪声源)。这些源产生的电磁波或尖峰脉冲通过磁、电耦合或是通过电源线等路径进入放大电路,各种电气设备,形成各种形式的干扰。斑点噪声:斑点噪声是sar成像系统的一大特色,源自基本分辨单元内地物的随机散射,在图像上表现为信号相关(如在空间上相关)的小斑点,它既降低了图像的画面质量,又严重影响图像的自动分割、分类、目标检测以及其它定量专题信息的提取。sar图像斑点噪声的去除一方面要抑制图像均匀区域斑点噪声,另一方面要保持图像边缘和纹理细节信息。sar斑点噪声的抑制可通过非相干多视处理,也可使用空间域滤波实现。非相干多视处理会降低图像的地面分辨率。因此,涌现出了一系列空间域滤波方法,如均值滤波、中值滤波、lee滤波、kuan滤波、frost滤波、sigma滤波以及gamma map滤波等。但这类算法存在自身无法克服的矛盾:一方面为增强斑点去噪效果需选较大的滤波窗口,另一方面为保持图像的实际分辨率要求所选的窗口较小。高斯噪声:所谓高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。高斯白噪声包括热噪声和散粒噪声。实验中是通过matlab自带的函数产生噪声,各函数如下: j1=imnoise(i,'salt & pepper',0.05);%添加椒盐噪声j2=imnoise(i,'gaussian',0,0.03);%添加均值为0,方差为0.03的高斯噪声。六、matlab优势matlab是一个包含大量算法的集合。其可以快捷的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和差错处理。在通常情况下,可以用它来代替底层编程语言,如c和c++。在计算要求相同的情况下,使用matlab的编程工作量会大大减少。matlab的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。图形处理功能图形处理功能matlab自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的matlab对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),matlab同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,matlab也有相应的功能函数,保证了用户不同层次的要求。另外新版本的matlab还着重在图形用户界面(gui)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足模块集合工具箱matlab对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,matlab已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、lmi控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、dsp与通讯、电力系统仿真等,都在工具箱(toolbox)家族中有了自己的一席之地。七、总结运用matlab软件对图像进行处理,让我巩固了之前所学的知识,同时也在这次作业中更加了解到matlab语言在生活中的运用环境和掌握这门语言的重要性八、存在问题1.在进行图像增强时要不要讲图像先进行平滑处理? 2.如何增加这个算法的准确度3.在此次作业中,为何添加椒盐噪声时无法显示数字图像处理基本运算实验报告 篇二实 验 报 告 书系部学生专业班实验名称姓名名称 级时间:: : ::实验一 直方图均衡一、实验目的在学习图像直方图的概念、计算方法、性质和相关应用基础上,生成、绘制图像的直方图,并应用matlab编程实现图像直方图均衡化程序。二、实验内容(1)计算并绘制图像直方图;(2)编程实现图像的直方图均衡化处理,显示均衡前后的直方图和图像;三、实验运行结果四、实验中遇到的问题及解决方法1、显示无法找到图像文件,应将图片与xx.m文件置于同一文件夹;2、编程过程中应注意标点的输入法,应该用英文输入,否则会报错。3、编程完成后运行时输入文件名与保存时文件名相同,区分大小写。五、思考题(1)、灰度直方图可以反映一幅图像的哪些特征? 答:1、表征了图像的一维信息。只反映图像中像素不同灰度值出现的次数(或频数)而未反映像素所在位置。2、与图像之间的关系是多对一的映射关系。一幅图像唯一确定出与之对应的直方图,但不同图像可能有相同的直方图。3、子图直方图之和为整图的直方图。(2)均衡化后的直方图有何特点?答:经直方图均衡化处理后,可以得到一副改善了质量的新图像。这幅图像的灰度层次将不再是呈黑暗色调的图像,而是一副灰度层次较为适中的、比原始图像清晰、明快得多的图像。处理的结果使图像更适合与人的视觉特征或机器的识别系统。六、实验心得体会本次实验中,因为初学这个软件,我学习到了在程序中关于图像的运用,以及也复习了课本上的许多知识,加深了对直方图均衡化的理解。七、程序清单clear all;i=imread('');%打开一幅灰度图像 [m,n]=size(i);p=m*n;j=imhist(i)./p;%计算图像的归一化直方图 subplot(1,3,1),imshow(i); subplot(1,3,2),imhist(i,64); subplot(1,3,3),plot(j);(2)直方图均衡化clear all;im=imread('');j=histeq(im);%均衡化 subplot(2,2,1);imshow(im);title('原图');%显示原图 subplot(2,2,2);imhist(im);title('原图直方图');%显示原图的直方图 subplot(2,2,3);imshow(j);title('均衡化结果');%显示均衡化后的图像 subplot(2,2,4);imhist(j);title('均衡化结果的直方图');%显示均衡化后的直方图实验二 频域图像增强一、实验目的1、频域图像增强2、掌握基于频域的图像增强方法。二、实验内容(1)编程实现图像的理想低通和高通滤波;(2)编程实现图像的巴特沃斯低通和高通滤波。三、实验运行结果四、实验中遇到的问题及解决方法显示图像无法打开,最终查出来时图像格式弄错了。五、思考题分析为什么图像通过低通滤波器后变得模糊?为什么通过高通滤波器后得到锐化结果?答:图像的精细结构及突变部分主要由高频成分起作用,故经低通滤波后图像的精细结构消失,变得模糊;经高通滤波后图像得到锐化。六、实验心得体会本实验中遇到很多问题及错误,例如图像打不开、处理后图像模糊等,都是经常容易发生的错误,最后实验几次,就能够逐一自己解决了。使自己对数字图像处理课程中的许多问题有了更实际和确切的深入了解。七、程序清单clc;clear;data4=imread('');subplot(3,2,1);imshow(data4);title('原图');i=fft2(data4);subplot(3,2,2);i=fftshift(i);z=log(abs(i));x=0:1:255;y=0:1:255;[x,y]=meshgrid(x,y);mesh(z);%以三维坐标显示该图像频谱图title('原图频谱');[n,m]=size(i);%for k=1:1:n for l=1:1:m if(k^2+l^2)>=190^2 % result(k,l)=0;else result(k,l)=i(k,l);end end end subplot(3,2,4);对该图进行低通滤波 选取d=190z=log(abs(result));%三维方式显示低通滤波后的频谱图 x=0:1:255;y=0:1:255;[x,y]=meshgrid(x,y);mesh(z);title('理想低通滤波后的频谱');subplot(3,2,3);%新建图像显示窗口 result=fftshift(result);%滤波后的数据去中心化 b=ifft2(result);%逆傅里叶变换 imshow(uint8(abs(b)));title('理想低通滤波后的图像');subplot(3,2,6);%新建图像显示窗口 % [n,m]=size(c);%对原图进行高通滤波 for k=1:1:n for l=1:1:m if(k^2+l^2)imshow(uint8(abs(d)));title('理想高通滤波后的图像');%频域增强(巴特沃斯原型)%二阶巴特沃斯(butterworth)低通滤波器 %clc;%clear;figure;j1=imread('');subplot(3,2,1);imshow(j1);title('原图');f=double(j1);g=fft2(f);% 傅立叶变换 g=fftshift(g);% 转换数据矩阵 subplot(3,2,2);x=0:1:255;y=0:1:255;[x,y]=meshgrid(x,y);z=log(abs(g));%取幅度 mesh(z);%以三维坐标显示该图像频谱图 title('原图频谱');[m,n]=size(g);nn=2;% 二阶巴特沃斯(butterworth)低通滤波器 d0=20;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 subplot(3,2,4);x=0:1:255;y=0:1:255;[x,y]=meshgrid(x,y);z=log(abs(result));%取幅度 mesh(z);%以三维坐标显示该图像频谱图 title('低通滤波后的频谱');result=ifftshift(result);j2=ifft2(result);j3=uint8(abs(j2));subplot(3,2,3);imshow(j3);title('低通滤波后的图像');%利用二阶巴特沃斯(butterworth)高通滤波器nn=2;% 二阶巴特沃斯(butterworth)高通滤波器 d0=5;m=fix(m/2);n=fix(n/2);for i=1:m for j=1:n d=sqrt((i-m)^2+(j-n)^2);if(d==0)h=0;else h=1/(1+0.414*(d0/d)^(2*nn));% 计算传递函数 end result(i,j)=h*g(i,j);end end subplot(3,2,6);x=0:1:255;y=0:1:255;[x,y]=meshgrid(x,y);z=log(abs(result));%取幅度 mesh(z);%以三维坐标显示该图像频谱图 title('高通滤波后的频谱');result=ifftshift(result);j2=ifft2(result);j3=uint8(abs(j2));subplot(3,2,5);imshow(j3);title('高通滤波后的图像');实验三 图像边缘检测与连接一、实验目的图像边缘检测与连接二、实验内容(1)编程实现一阶差分边缘检测算法,包括robert梯度算子、prewitt算子、sobel算子等;(2)编程实现二阶差分拉普拉斯边缘检测算法以及log检测法和canny检测法;(3)分析与比较各种边缘检测算法的性能;(4)编程实现hough变换提取直线(5)分析hough变换检测性能;三、实验运行结果四、实验中遇到的问题及解决方法拷贝文件后没改文件名,直接执行时出现错误,最后重新修改后重新编译,使之成功。五、思考题(1)边缘的方向是什么意思?为什么要考虑边缘的方向?答:边缘常常意味着一个区域的终结和另一个区域的开始,图像的边缘也包含了物体的形状的重要信息,他不仅在分析图像时大幅度的减少了要处理的信息量,而且还保护了目标的边界结构。所以考虑边缘的方向很重要。(2)hough变换原理是什么?答:hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为准找参数空间的峰值问题。也即把检测整体特性转化为检测局部特性。比如直线、椭圆、圆、弧线等。六、实验心得体会对于一些图像处理的函数不是很了解,只能够按课本的参照函数拷贝做实验,对于其中的一些函数问题理解不是很透彻,有些甚至完全不懂。还得继续努力。七、程序清单1、边缘检测由edge函数实现各算子对图像的边缘检测clear all;i = imread('d:');i=rgb2gray(i);bw1 = edge(i,'sobel');%利用sobel算子进行边缘检测 bw2 = edge(i,'roberts');%利用roberts算子进行边缘检测 bw3 = edge(i,'prewitt');%利用prewitt算子进行边缘检测 bw4 = edge(i,'log');%利用log算子进行边缘检测 bw5 = edge(i,'canny');%利用canny算子进行边缘检测 subplot(2,3,1),imshow(i)subplot(2,3,2),imshow(bw1)subplot(2,3,3),imshow(bw2)subplot(2,3,4),imshow(bw3)subplot(2,3,5),imshow(bw4)subplot(2,3,6),imshow(bw5)2、边缘连接使用hough变换作线检测和连接clear all;rgb = imread('d:');i=rgb;%i = rgb2gray(rgb);bw = edge(i,'canny');% 利用canny算子提取图像边缘 [h,t,r] = hough(bw,'rhoresolution',0.5,'thetaresolution',0.5);figure(1), imshow(t,r,h,[],'notruesize'), axis on, axis normal xlabel('t'), ylabel('r')p = houghpeaks(h,5,'threshold',ceil(0.3*max(h(:))));%找到5个较明显的hough变换峰值hold on plot(t(p(:,2)),r(p(:,1)),'s','color','white');lines = houghlines(bw,t,r,p,'fillgap',10,'minlength',10);%查找并链接线段figure, imshow(bw), hold on %在二值图中叠加显示这些线段 for k = 1:length(lines)xy = [lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'linewidth',2,'color','green');end数字图像处理基本运算实验报告 篇三实验一 数字图像的获取一、实验目的1、了解图像的实际获取过程。2、巩固图像空间分辨率和灰度级分辨率、邻域等重要概念。3、熟练掌握图像读、写、显示、类型转换等 matlab 函数的用法。二、实验内容1、读取一幅彩色图像,将该彩色图像转化为灰度图像,再将灰度图像转化为索引图像并显示所有图像。2、编程实现空间分辨率变化的效果。三、实验原理1、图像读、写、显示 i=imread(‘’)imview(i)imshow(i)imwrite(i,’wode’)2、图像类型转换i=mat2gray(a,[amin,amax]);按指定的取值区间[amin,amax]将数据矩阵 a 转化为灰度图像 i,amin 对应灰度 0,amax 对应 1,也可以不指定该区间。[x,map]=gray2ind(i,n);按指定的灰度级 n 将灰度图像转化为索引图像,n 默认为 64 i=ind2gray(x,map);索引图像转化为灰度图像 i=grb2gray(rgb);真彩色图像转化为灰度图像[x,map]=rgb2ind(rgb);真彩色图像转化为索引图像 rgb=ind2rgb(x,map);索引图像转化为真彩色图像bw=im2bw(i,level);将灰度图像转化为二值图像,level 取值在[0,1]之间bw=im2bw(x,map,level);将索引图像转化为二值图像,level 取值在[0,1]之间 bw=im2bw(rgb,level);将真彩色图像转化为二值图像,level 取值在[0,1]之间四、实验代码及结果1、in=imread('');i=rgb2gray(in);[x,map]=gray2ind(i,128);subplot(131),imshow(in)subplot(132),imshow(i)subplot(133),imshow(x),colormap(map)、%空间分辨率变化的效果clc,close all,clear i=imread('');i=imresize(i,[256,256]);i1=i(1:2:end,1:2:end);[m1,n1]=size(i)i2=i1(1:2:end,1:2:end);[m2,n2]=size(i2)i3=i2(1:2:end,1:2:end);[m3,n3]=size(i3)subplot(221),imshow(i),xlabel('256 x 256')subplot(222),imshow(i1),xlabel('128 x 128')subplot(223),imshow(i2),xlabel('64 x 64')subplot(224),imshow(i3),xlabel('32 x 32')256 x 25664 x 64128 x 12832 x 32实验二图像的几何变换一、实验目的掌握图像的基本几何变换的方法1、图像的平移2、图像的旋转二、实验内容练习用matalb命令实现图像的平移、旋转操作1、.编写实现图像平移的函数2、用imread命令从你的硬盘读取一幅256×256灰度图;3、调用平移函数,将256×256灰度图平移100行200列,在同一个窗口中显示平移前和平移后的图像。4、再开辟一个窗口,分别用最近邻插值法、双线性插值法实现图像顺势针旋转50°,显示在同一窗口中,并比较两种效果图(在报告中)三、实验原理提示:图片平移就是实现运算x'10x0x ' y01y0y10011 x'xx0即:y'yy0四、实验代码及结果1、function [i]=hmove(i,x0,y0);%编写实现图像平移的函数hmove,平移量为 [r,c]=size(i);%x0,y0,平移前图像矩阵为i,i(r+x0,c+y0)=0;%平移后图像矩阵为i for x=1:r;for y=1:c;x1=x+x0;y1=y+y0;i(x1,y1)=i(x,y);end;end;参考程序 subplot(2,2,1)imshow(rgb)subplot(2,2,3)gray1=rgb2gray(rgb);imagesc(gray1),colormap(gray);subplot(2,2,2)i1=hmove(gray1,100,20);subimage(gray1),axis('image');subplot(2,2,4),imagesc(i1),colormap(gray),axis([1,700],[1,820]);2、显示图像的傅立叶频谱  a=0:800;b=0:600; %[x,y]=meshgrid([-20:0.2:20],[-20:0.2:20]); [x,y]=meshgrid(a,b); i=imread(''); i=rgb2gray(i); subplot(1,2,1),subimage([0,800],[0,600],i); subplot(1,2,2); s=fft2(i,601,801); mesh(x,y,log(abs(s)));%图像的傅立叶幅度频谱以三维图形显示  colormap(hsv);实验三 图像空域变换增强(1)一、实验目的1、掌握直方图均衡化算法。2、巩固灰度变换、直方图修正、图像算术和逻辑运算等基础知识。3、熟练掌握空域变换增强的matlab 相关函数用法,并能利用算法自己编写matlab 程序实现图像空域变换增强。二、实验内容1、用函数imcomplement 取反。2、做线性灰度变换。3、的直方图,并和imhist 函数生成的直方图作比较。三、实验原理在图像处理中,空域是指由像素组成的空间,空域增强方法是指直接作用于像素的增强方法。空域处理可以表示为:g(x, y)=t[ f(x, y)]j=imcomplement(i);对图像取反 imhist();显示图像的直方图 histeq();直方图均衡化函数imnoise(i,type,parameters);给图像加噪声 bitand();图像位与运算 bitor();图像位或运算四、实验代码与结果1、i=imread('');j=imcomplement(i);subplot(121),imshow(i)subplot(122),imshow(j)2、clear,close all,clc in1=imread('');f0=0;g0=0;f1=100;g1=60;f2=150;g2=220;f3=255;g3=255;figure,plot([f0,f1,f2,f3],[g0,g1,g2,g3])axis tight,xlabel('f'),ylabel('g')title('intensity transformation')r1=(g1-g0)/(f1-f0);b1=g0-r1*f0;r2=(g2-g1)/(f2-f1);b2=g1-r2*f1;r3=(g3-g2)/(f3-f2);b3=g2-r3*f2;[m,n]=size(in1);in2=double(in1);for i=1:m for j=1:n f=in2(i,j);g(i,j)=0;if(f>=0)&(f=f1)&(f=f2)&(f3、clc,clear,close all in=imread('');[m,n]=size(in);num=zeros(1,256);% num 是每个灰度级对应的像素个数 p=zeros(1,256);% p 是每个灰度级出现的概率 for i=1:m for j=1:n num(1,in(i,j)+1)=num(1,in(i,j)+1)+1;% 统计个数 end end p=num./(m*n)% 求概率 x=1:256;subplot(121),plot(x,p),axis([1 256 0 0.06])subplot(122),imhist(in)实验四 图像空域变换增强(2)一、实验目的1、掌握直方图均衡化算法。2、巩固灰度变换、直方图修正、图像算术和逻辑运算等基础知识。3、熟练掌握空域变换增强的matlab 相关函数用法,并能利用算法自己编写matlab 程序实现图像空域变换增强。实现频域线性变换,非线性变换增强二、实验内容1、进行增强运算。2、作逻辑与和逻辑或运算。三、实验原理j=imcomplement(i);对图像取反 imhist();显示图像的直方图 histeq();直方图均衡化函数imnoise(i,type,parameters);给图像加噪声 bitand();图像位与运算 bitor();图像位或运算四、实验代码与结果1、clear;close all;clc;tu=imread('');% 输入图像%tu=rgb2gray(tu);% 转换为灰度图像n=zeros(1,256);% n 为原始图像各灰度级像素个数 p=zeros(1,256);% p 为原始成图像直方图q=zeros(1,256);% q 为原始图像直方图累积分布函数newn=zeros(1,256);% newn 为新生成图像各灰度级像素个数 newp=zeros(1,256);% newp 为新生成图像直方图newq=zeros(1,256);% newq 为新生成图像直方图累积分布函数 [h w]=size(tu);new_tu=zeros(h,w);% 计算原始图像各灰度级像素个数 for x=1:h for y=1:w n(1,tu(x,y))=n(1,tu(x,y))+1;end end p=n./sum(n);% 计算原始直方图 p % 计算原始累积分布直方图 q(1,1)=p(1,1);for i=2:256 q(1,i)=q(1,i-1)+p(1,i);end % 计算原始直方图对应的新的灰度 t ,建立映射关系 for i=1:256 t(1,i)=floor(254*q(1,i)+1+0.5);end % 计算直方图均衡化后的新图 new_tu for x=1:h for y=1:w new_tu(x,y)=t(1,tu(x,y));end end % 统计新生成图像各灰度级像素个数 for x=1:h for y=1:w newn(1,new_tu(x,y))=newn(1,new_tu(x,y))+1;end end newp=newn./(h*w);% 计算新的灰度直方图 newp % 计算新生成图像累积分布直方图 newq(1,1)=newp(1,1);for i=2:256 newq(1,i)=newq(1,i-1)+newp(1,i);end % 显示信息subplot(231),imshow(tu)subplot(232),plot(p),axis([1 256 0 0.06])subplot(233),plot(q),axis([1 256 0 1])subplot(234),imshow(new_tu,[])subplot(235),plot(newp),axis([1 256 0 0.06])subplot(236),plot(newq),axis([1 256 01])2、clc,clear,close all in=imread('');in=rgb2gray(in);[m,n]=size(in);in=double(in);out1=ones(m,n)*255;out1(20:150,30:170)=0;chu1=zeros(m,n);chu1(20:150,30:170)=255;for i=1:m for j=1:n out2(i,j)=bitor(in(i,j),out1(i,j));chu2(i,j)=bitand(in(i,j),chu1(i,j));end end in=uint8(in);out1=uint8(out1);out2=uint8(out2);chu1=uint8(chu1);chu2=uint8(chu2);subplot(231),imshow(in)subplot(232),imshow(out1)subplot(233),imshow(out2)subplot(234),imshow(chu1)subplot(235),imshow(chu2)实验五 图像滤波增强一、实验目的1、掌握各种空域和频域图像滤波增强算法已经模板运算的基本方法。2、巩固卷积定理、滤波处理等基础知识。3、熟练掌握空域和频域滤波增强的matlab 相关函数用法。二、实验内容1、利用均值滤波算法对已被噪声污染的图像 进行滤波除噪处理。、利用标准中值滤波算法对已被噪声污染的图像 进行滤波除噪处理。3、用prewitt 进行锐化滤波处理。三、实验原理h=fspecial(type);h=fspecial(type,parameters);用于创建一个指定的滤波器模板,type 指滤波器的类型。parameters 是与指定的滤波器有关的参数。y=filter2(b,x);用于进行二维线性数字滤波,使用矩阵b 中的二维滤波器对数据x进行滤波。结果y 是通过二维互相关计算出来的,大小与x 一样。y=filter2(b,x,’shape’);结果y 的大小由参数shape确定,shape的取值如下: full:返回二维户相关的全部结果,size(y)>size(x)same:返回二维户相关结果的中间部分,y 的大小与x 相同 valid:返回二维户相关未使用边缘补0 的部分,size(y)四、实验代码与结果1、clc,clearin1=imread('');f=imnoise(in1,'salt & pepper',0.1);%f=imnoise(in1,'gaussian',0,0.02)%g 是标准均值滤波器的输出图像 g=biaozhunjunzhi(f,3);subplot(221),imshow(in1)%,xlabel('(a)原始图像')subplot(222),imshow(f)%,xlabel('(b)加噪图像')subplot(223),imshow(g)%,xlabel('(c)标准均值滤波图像')function g=biaozhunjunzhi(f,k)[m,n]=size(f);

上一篇:没有了
下一篇:iQOO Neo9S Pro硬件强悍,那么OriginOS 4表现怎么样?

Powered by Asterix Labs中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024