2022年数字图像处理MATLAB程序【完整版】 .pdf
第一部分数字图像处理精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 16 页实验一图像的点运算实验 1.1 直方图一实验目的1熟悉 matlab 图像处理工具箱及直方图函数的使用;2理解和掌握直方图原理和方法;二实验设备1.PC 机一台; 2. 软件 matlab 。三程序设计在 matlab 环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。I=imread(cameraman.tif);%读取图像subplot(1,2,1),imshow(I) %输出图像title(原始图像 ) %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title(原始图像直方图) %在原图直方图上加标题四实验步骤1. 启动 matlab 双击桌面matlab 图标启动 matlab 环境;2. 在 matlab 命令窗口中输入相应程序。书写程序时, 首先读取图像, 一般调用 matlab 自带的图像,如:cameraman 图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3浏览源程序并理解含义;4运行,观察显示结果;5结束运行,退出;五实验结果观察图像matlab 环境下的直方图分布。(a) 原始图像 (b)原始图像直方图六实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 16 页实验 1.2 灰度均衡一实验目的1熟悉 matlab 图像处理工具箱中灰度均衡函数的使用;2理解和掌握灰度均衡原理和实现方法;二实验设备1.PC 机一台;2. 软件 matlab ;三程序设计在 matlab 环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。I=imread(cameraman.tif);%读取图像subplot(2,2,1),imshow(I) %输出图像title(原始图像 ) %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title(原始图像直方图) %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256 subplot(2,2,2),imshow(a) %输出均衡化后图像title(均衡化后图像) %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title(均衡化后图像直方图) % 在均衡化后直方图上加标题四实验步骤1. 启动 matlab 双击桌面matlab 图标启动 matlab 环境;2. 在 matlab 命令窗口中输入相应程序。书写程序时, 首先读取图像, 一般调用 matlab 自带的图像,如:cameraman 图像;再调用相应的灰度均衡函数,设置参数;最后输出处理后的图像;3浏览源程序并理解含义;4运行,观察显示结果;5结束运行,退出;五实验结果观察 matlab 环境下图像灰度均衡结果及直方图分布。(a) 原始图像 (b)均衡化后图像精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 16 页(c) 原始图像直方图 (d)均衡化后图像直方图六实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度均衡结果,并进行灰度均衡化前后图像直方图分布对比分析。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 16 页实验二图像滤波实验 2.1 3*3 均值滤波一实验目的1熟悉 matlab 图像处理工具箱及均值滤波函数的使用;2理解和掌握3*3 均值滤波的方法和应用;二实验设备1.PC 机一台;2. 软件 matlab ;三程序设计在 matlab 环境中,程序首先读取图像,然后调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。I = imread(cameraman.tif); figure,imshow(I); J=filter2(fspecial(average ,3),I)/255; figure,imshow(J); 四实验步骤1. 启动 matlab 双击桌面matlab 图标启动 matlab 环境;2. 在 matlab 命令窗口中输入相应程序。书写程序时, 首先读取图像, 一般调用 matlab 自带的图像,如:cameraman 图像;再调用相应的图像增强(均值滤波)函数,设置参数;最后输出处理后的图像;3浏览源程序并理解含义;4运行,观察显示结果;5结束运行,退出;五实验结果观察 matlab 环境下原始图像经3*3 均值滤波处理后的结果。(a) 原始图像 (b)3*3均值滤波处理后的图像图(3) 六实验报告要求输入一幅灰度图像,给出其图像经3*3 均值滤波处理后的结果,然后对每一点的灰度值和它周围24 个点,一共25 个点的灰度值进行均值滤波,看看对25 个点取均值与对9 个点取中值进行均值滤波有什么区别?有没有其他的算法可以改进滤波效果。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 16 页实验 2.2 3*3 中值滤波一实验目的1熟悉 matlab 图像处理工具箱及中值滤波函数的使用;2理解和掌握中值滤波的方法和应用;二实验设备1.PC 机一台;2. 软件 matlab ;三程序设计在 matlab 环境中,程序首先读取图像,然后调用图像增强(中值滤波)函数,设置相关参数,再输出处理后的图像。I = imread(cameraman.tif); figure,imshow(I); J=medfilt2(I,5,5); figure,imshow(J); 四实验步骤1. 启动 matlab 双击桌面matlab 图标启动 matlab 环境;2. 在 matlab 命令窗口中输入相应程序。书写程序时, 首先读取图像, 一般调用 matlab 自带的图像,如:cameraman 图像;再调用相应的图像增强(中值滤波)函数,设置参数;最后输出处理后的图像;3浏览源程序并理解含义;4运行,观察显示结果;5结束运行,退出;五实验结果观察 matlab 环境下原始图像经3*3 中值滤波处理后的结果。(a) 原始图像 (b)3*3中值滤波处理后的图像图(4) 六实验报告要求输入一幅灰度图像,给出其图像经3*3 中值滤波处理后的结果,然后对每一点的灰度值和它周围24 个点,一共25 个点的灰度值进行排序后取中值,然后该点的灰度值取中值。看看对25 个点取中值与对 9 个点取中值进行中值滤波有什么区别?精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 16 页实验三图像几何变换实验 3.1 图像的缩放一实验目的1熟悉 matlab 图像处理工具箱及图像缩放函数的使用;2掌握图像缩放的方法和应用;二实验设备1.PC 机一台;2. 软件 matlab ;三程序设计在 matlab 环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。I = imread(cameraman.tif); figure,imshow(I); scale = 0.5; J = imresize(I,scale); figure,imshow(J); 四实验步骤1. 启动 matlab 双击桌面matlab 图标启动 matlab 环境;2. 在 matlab 命令窗口中输入相应程序。书写程序时, 首先读取图像, 一般调用 matlab 自带的图像,如:cameraman 图像;再调用相应的图像缩放函数,设置参数;最后输出处理后的图像;3浏览源程序并理解含义;4运行,观察显示结果;5结束运行,退出;五实验结果观察 matlab 环境下图像缩放后的结果。(a) 原始图像 (b)缩放后的图像图(5) 六实验报告要求输入一幅灰度图像,给出其图像缩放后的结果,然后改变缩放比率,观察图像缩放后结果柄进行分析。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 16 页实验 3.2 图像旋转一实验目的1熟悉 matlab 图像处理工具箱及图像旋转函数的使用;2理解和掌握图像旋转的方法和应用;二实验设备1.PC 机一台;2. 软件 matlab ;三程序设计在 matlab 环境中,程序首先读取图像,然后调用图像旋转函数,设置相关参数,再输出处理后的图像。I = imread(cameraman.tif); figure,imshow(I); theta = 30; K = imrotate(I,theta); % Try varying the angle, theta. figure, imshow(K) 四实验步骤1. 启动 matlab 双击桌面matlab 图标启动 matlab 环境;2. 在 matlab 命令窗口中输入相应程序。书写程序时, 首先读取图像, 一般调用 matlab 自带的图像,如:cameraman 图像;再调用相应的图像旋转函数,设置参数;最后输出处理后的图像;3浏览源程序并理解含义;4运行,观察显示结果;5结束运行,退出;五实验结果观察 matlab 环境下图像旋转后的结果。(a) 原始图像 (b)旋转后的图像图(7) 六实验报告要求输入一幅灰度图像,给出其图像旋转后的结果,然后改变旋转角度,观察图像旋转后结果柄进行分析。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 16 页实验四图像边缘检测实验 4.1 边缘检测( Sobel、Prewitt 、Log 边缘算子)一实验目的1熟悉 matlab 图像处理工具箱及图像边缘检测函数的使用;2理解和掌握图像边缘检测(Sobel 、Prewitt、Log 边缘算子)的方法和应用;二实验设备1.PC 机一台;2. 软件 matlab ;三程序设计在 matlab 环境中,程序首先读取图像,然后调用图像边缘检测(Sobel 、Prewitt、Log 边缘算子)函数,设置相关参数,再输出处理后的图像。I = imread(cameraman.tif); J1=edge(I,sobel); J2=edge(I,prewitt); J3=edge(I,log); subplot(1,4,1),imshow(I); subplot(1,4,2),imshow(J1); subplot(1,4,3),imshow(J2); subplot(1,4,4),imshow(J3); 四实验步骤1. 启动 matlab 双击桌面matlab 图标启动 matlab 环境;2. 在 matlab 命令窗口中输入相应程序。书写程序时, 首先读取图像, 一般调用 matlab 自带的图像,如:cameraman 图像;再调用相应的边缘检测(Sobel 边缘算子、 Prewitt边缘算子、 Log 边缘算子)函数,设置参数;最后输出处理后的图像;3浏览源程序并理解含义;4运行,观察显示结果;5结束运行,退出;五实验结果观察经过图像边缘检测(Sobel、 Prewitt、Log 边缘算子)处理后的结果。(a) 原始图像 (b)Sobel边缘算子精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 16 页(c)Prewitt边缘算子 (d)Log边缘算子图(7) 六实验报告要求输入一幅灰度图像,给出其图像边缘检测(Sobel 、Prewitt、Log 边缘算子)后的结果并进行分析对比。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 16 页实验五基于 DSP的边缘检测实验 5.1 边缘检测( Sobel 边缘算子)一实验目的1熟悉视频显示程序的运行过程、控制过程,搞清数据处理、传输途径;2结合实例学习如何在视频显示程序中增加图像处理算法;3. 熟悉 CCS集成开发环境的使用;4了解边缘检测的算法和用途,学习利用Sobel 算子进行边缘检测的程序设计方法;二实验设备1.SEED_DTK 教学实验系统一套;2.DSP 仿真器;3.PC 机一台。三程序设计在视频显示任务的循环中,程序首先将视频数据从输入缓冲区读入自己开设的临时图像处理缓冲区,再在临时图像处理缓冲区上进行处理,处理后的数据再输出到输出缓冲区。在屏幕中央开辟一个矩形区域,对这个区域内的图像进行处理。这里按模板(1)进行处理。DSP程序具体详见附录一。/* 画矩形边框 */ void drawRectangle(); /*Sobel边缘检测处理 */ void sobelEdge(); 四实验步骤1实验准备(1) 连接设备参见“第一部分实验环境的建立”的“一硬件连接”部分。(2) 开启设备打开计算机电源(注意:连接设备时并不需要关闭计算机,但要关闭实验箱电源;如在连接设备前已经打开计算机,就不需要进行此步骤了)。打开实验箱电源开关打开显示器开关。(3) 设置 Code Composer Studio 为 Emulator 方式参见“第一部分实验环境的建立”的“二软件的安装和配置”部分。如先前已经设置过,就不需再进行设置了。(4) 双击 usb20emurst.exe ,如果出现提示“SEED USB2.0 XDS510 CARD IS RESET,HARDWARE VERSION 1” ,证明仿真器与目标系统连接正常。否则请检查电源是否打开,仿真器驱动是否安装正确以及硬件。(5) 启动 Code Composer Studio 双击桌面上“CCS 2(C6000)”图标,启动Code Composer Studio。成功后可看到CCS环境界面。2打开工程:工程目录DM642Programs2.ImageProcessSEED401_SobelEdgeSobelEdgeloop2.pjt 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 16 页3浏览工程中源程序并理解含义。4编译、连接、下载程序并运行,观察显示。5结束运行,退出工程。五实验结果矩形框内外分别是用Sobel 边缘算子处理和未处理的图像结果。六实验报告要求(1) 简述 DSP下实验步骤;(2) 输入视频,观察Sobel 边缘检测效果并经行分析;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 16 页实验 5.2 边缘检测( Prewitt边缘算子)一实验目的1熟悉视频显示程序的运行过程、控制过程,搞清数据处理、传输途径;2结合实例学习如何在视频显示程序中增加图像处理算法;3. 熟悉 CCS集成开发环境的使用;4了解边缘检测的算法和用途,学习利用Prewitt算子进行边缘检测的程序设计方法;二实验设备1.SEED_DTK 教学实验系统一套;2.DSP 仿真器;3.PC 机一台。三程序设计在视频显示任务的循环中,程序首先将视频数据从输入缓冲区读入自己开设的临时图像处理缓冲区,再在临时图像处理缓冲区上进行处理,处理后的数据再输出到输出缓冲区。在屏幕中央开辟一个矩形区域,对这个区域内的图像进行处理。这里按模板(2)进行处理。DSP程序具体详见附录。/* 画矩形边框 */ void drawRectangle(); /*Prewitt边缘检测处理 */ void PrewittEdge(); 四实验步骤1实验准备(1) 连接设备参见“第一部分实验环境的建立”的“一硬件连接”部分。(2) 开启设备打开计算机电源(注意:连接设备时并不需要关闭计算机,但要关闭实验箱电源;如在连接设备前已经打开计算机,就不需要进行此步骤了)。打开实验箱电源开关打开显示器开关。(3) 设置 Code Composer Studio 为 Emulator 方式参见“第一部分实验环境的建立”的“二软件的安装和配置”部分。如先前已经设置过,就不需再进行设置了。(4) 双击 usb20emurst.exe ,如果出现提示“SEED USB2.0 XDS510 CARD IS RESET,HARDWARE VERSION 1” ,证明仿真器与目标系统连接正常。否则请检查电源是否打开,仿真器驱动是否安装正确以及硬件。(5) 启动 Code Composer Studio 双击桌面上“CCS 2(C6000)”图标,启动Code Composer Studio。成功后可看到CCS环境界面。2打开工程:工程目录DM642Programs2.ImageProcess SEED402_PrewittEdgePrewittEdgeloop2.pjt 3浏览工程中源程序并理解含义。4编译、连接、下载程序并运行,观察显示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 16 页5结束运行,退出工程。五实验结果矩形框内外分别是用Prewitt边缘算子处理和未处理的图像结果。六实验报告要求(1) 简述 DSP环境下实验步骤;(2) 输入视频,观察Prewitt边缘检测效果并进行分析。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 16 页实验 5.3 边缘检测( Laplacian边缘算子)一实验目的1熟悉视频显示程序的运行过程、控制过程,搞清数据处理、传输途径;2结合实例学习如何在视频显示程序中增加图像处理算法;3. 熟悉 CCS集成开发环境的使用;4了解边缘检测的算法和用途,学习利用Laplacian算子进行边缘检测的程序设计方法;二实验设备1.SEED_DTK 教学实验系统一套;2.DSP 仿真器;3.PC 机一台。三程序设计在视频显示任务的循环中,程序首先将视频数据从输入缓冲区读入自己开设的临时图像处理缓冲区,再在临时图像处理缓冲区上进行处理,处理后的数据再输出到输出缓冲区。在屏幕中央开辟一个矩形区域,对这个区域内的图像进行处理。这里按模板(3)进行处理。DSP程序具体详见附录三。/* 画矩形边框 */ void drawRectangle(); /*Laplacian边缘检测处理 */ void LaplacianEdge (); 四实验步骤1实验准备(1) 连接设备参见“第一部分实验环境的建立”的“一硬件连接”部分。(2) 开启设备打开计算机电源(注意:连接设备时并不需要关闭计算机,但要关闭实验箱电源;如在连接设备前已经打开计算机,就不需要进行此步骤了)。打开实验箱电源开关打开显示器开关。(3) 设置 Code Composer Studio 为 Emulator 方式参见“第一部分实验环境的建立”的“二软件的安装和配置”部分。如先前已经设置过,就不需再进行设置了。(4) 双击 usb20emurst.exe ,如果出现提示“SEED USB2.0 XDS510 CARD IS RESET,HARDWARE VERSION 1” ,证明仿真器与目标系统连接正常。否则请检查电源是否打开,仿真器驱动是否安装正确以及硬件。(5) 启动 Code Composer Studio 双击桌面上“CCS 2(C6000)”图标,启动Code Composer Studio。成功后可看到CCS环境界面。2打开工程:工程目录DM642Programs2.ImageProcessSEED403_ LaplacianEdgeLaplacianEdgeloop2.pjt 3浏览工程中源程序并理解含义。4编译、连接、下载程序并运行,观察显示。5结束运行,退出工程。五实验结果精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 16 页矩形框内外分别是用Laplacian边缘算子处理和未处理的图像结果。六实验报告要求(1) 简述 DSP环境下实验步骤;(2) 输入视频,观察Laplacian边缘检测效果并进行分析。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 16 页