数字图像处理课程设计matlab[学习]

上传人:粗**** 文档编号:140297418 上传时间:2020-07-28 格式:PDF 页数:17 大小:1.93MB
返回 下载 相关 举报
数字图像处理课程设计matlab[学习]_第1页
第1页 / 共17页
数字图像处理课程设计matlab[学习]_第2页
第2页 / 共17页
数字图像处理课程设计matlab[学习]_第3页
第3页 / 共17页
数字图像处理课程设计matlab[学习]_第4页
第4页 / 共17页
数字图像处理课程设计matlab[学习]_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数字图像处理课程设计matlab[学习]》由会员分享,可在线阅读,更多相关《数字图像处理课程设计matlab[学习](17页珍藏版)》请在金锄头文库上搜索。

1、数字图像处理课程设计文档 目录 一、 课程设计目的 . . 2 二、 课程设计要求 .2 三、 课程设计的容 . .2 四、 课题分析 .3 五、 总体设计 . .3 六、 具体设计 .4 6.1、文件 . .4 6.1.1、打开 . 4 6.1.2、保存 . . 4 6.1.3、打印 . . 4 6.1.4、退出 .4 6.2、 直方图统计 .4 6.2.1、R 直方图 . . 4 6.2.2、G 直方图 . . 4 6.2.3、B 直方图 . . 4 6.3、图像增强处里 . 5 6.3.1、直方图均衡化 . . 5 6.3.2、对比度展宽 . . 6 6.3.3、动态围调整 . 6 6.

2、3.4、空间域平滑算法 . 6 6.3.4.1、均值滤波 .7 6.3.4.2、中值滤波 7 6.3.4.3、边界保持滤波 8 6.4、图像分割 . . 8 6.4.1、均匀性度量法 8 6.4.2、类间最大距离法 .9 6.4.3、局部阈值法 .9 6.5、颜色空间转化 . . 9 6.5.1、 RGB 转 HSV10 6.5.2、RGB 转 HIS.10 6.6、 其他图像处理功能 10 6.6.1、锐化 .10 6.6.2、 傅里叶.10 七、 程序调试及结果分析 .11 八、心得体会 .11 九、 参考文献 .11 十、 附录 .12 基于 MATLAB的图像处理的课程设计 一、课程设

3、计目的 1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基 本原理与方法。 2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。 二、课程设计要求 1、要求独立完成设计项目,开发工具为MATLAB ,也可为 C、C+ 、java 等, 具体自选。各组长有责任督促组员完成任务并提交报告; 2、时间为 4 月 28日6 月 28 日为其两个月的业余时间。 三、课程设计的容 学习MATLAB GUI 程序设计,利用MATLAB图像处理工具箱,设计和实现自己的 Photoshop 。要求:按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设 计详细说明。然后按照

4、自己拟定的功能要求进行程序设计和调试。 整个系统要完成的基本功能大致如下: 1、能对图像文件( bmp 、 jpg 、 tiff、 gif等)进行打开、保存、另存、 打印、退出等功能操作; 2、数字图像的统计信息功能:直方图的统计及绘制; 3、数字图像的增强处理功能: (1) 直方图的均衡化 (2) 对比度展宽 (3) 动态围调整 (4) 空间域平滑算法的各种算法(如均值滤波、中值滤波、边界保持的 滤波方法等) 4 、数字图像由 RGB 转换成 HIS 空间并分别显示其分量图。 5 、数字图像分割功能: 可采用两种以上方法进行图像分割。 总体设计 由于要实现的功能并不是很多,所以在排版的过程中

5、,把各个功能都安排 在目录栏上,整体安排如下图所示: 四、 具体设计 6.1、文件 6.1.1、打开 为了让使用者更方便的使用, 所以在设计的时候, 通过对话框的形式来选择 文件,选择 uigetfile 函数来实现, uigetfile 函数显示一个打开文件对话框,该对 话框自动列出当前路径下的目录和文件,由于这个GUI 程序的操作对象是图像 文件。 Uigetfile 函数的调用格式为 name,path=yigetfile(), 在按下对话框中的执 行按钮“打开”后,返回选择的文件名和路径,分别保存到“name”和“path” 中。如果按下取消按钮或是发生错误,则返回值是0。 根据返回值

6、的情况,如 果是 0,则弹出提示错误的对话框,否则,通过imread函数读出图像数据,把图 像数据赋值给全局变量handles.image 。 6.1.2、保存 同样也通过对话框的形式来保存图像数据,通过 uigetfile 函数选择文件名和 路径, 用getimage (gca) 取出坐标 2变换后的图像数据保存到变量i, 最后用 imwrite 函数,把数据 i 存到指定的文件。 6.1.4、退出 退出比较简单,程序如下所示: clc; close all; close(gcf); 6.1.3、打印 打印功能没能实现,将它设置为不可使用,可用如下代码实现 set(handles.print

7、, Enable,off ); %放在open_callback函数末尾 set(handles.print, Enable,off );% 放在two_OpeningFcn中 6.2、直方图统计 6.2.1、R 直方图 由于 RGB 图像是三维图像, 所以图像数据是一个三维数组,为了显示 R 直方图像,把三维图像降为二维,且是当最后一个参数为1 时是 R 直方 图: x=imhist(handles.image(:,:,1); %当然也可以选择(:,:,2) 或(:,:,3)? imshow(y); 处理前后图片效果如下: 6.2.2、G 直方图 G 直方图与 R 直方图的程序差不多只需将数

8、值为1 的 R 直方图变成 2 即 可成为 G 直方图 x=imhist(handles.image(:,:,2); 6.2.3、B 直方图 同理可得 B 直方图 x=imhist(handles.image(:,:,3); RGB 三种直方图统计图如下: 原图R 直方图 G 直方图B 直方图 6.3、图像增强处理 6.3.1、直方图均衡化 在 balance_Callback回退函数中实现直方图均衡化 每个回退函数中都要获取图片, 上面的 RGB 直方图也一样需获取打开的 图片。打开图片的为以下程序代码: set(handles.axes2,HandleVisibility,ON); axe

9、s(handles.axes2); 直方图均衡化是判断是否为灰度图。用函数 isrgb 了来判断, 不是灰度则将其 转化,否则就直接用函数: histeq(handles.image )% handles.image是获取的图片 来直方图均衡化处理图片 图片前后效果如下: 6.3.2、 对比度展宽 对图像的对比度展宽刻可自己编写算法来处理,同样的,处理结果如图: 6.3.3、动态围调整 共图像处理功能未能实现, 程序中已给出处理其图像的代码,但有错误, 不能找出其错位,将其正确的处理, 原因是: nw=1./(b-a).*(h-a.*ones(sx,sy); Error:Matrix dime

10、nsions must agree 也查过资料修改该语句,有的资料说是乘除和幂方要改成点乘点除,点幂方, 这个是合理,但是改正后仍然有错,是在无能为力, 代码在后面将给出,可供参考。 6.3.4、空间域平滑算法 6.3.4.1、均值滤波 经常用到的噪声有两种, 高斯噪声, 椒盐噪声, 可以通过以下两个函数来 实现: y=imnoise(handles.img,gaussian,p1,p2);%高斯噪声 y=imnoise(x,salt %椒盐噪声 均值滤波中可对高斯滤波, 也可以对椒盐滤波, 设计过程中采用其一 种图片进行处理。但两种处理的效果就不同,对高斯噪声处理的 效果更加明显 均值滤波是

11、一种采取平均灰度值的方法进行滤波,用imnoise 获得噪 声的图片。 这个函数可获得高斯噪声, 亦可获得椒盐噪声。 在采用函数 conv2 进行均值处理,处理前后的图片比较如下: 6.3.4.2、中值滤波 中值滤波同均值滤波的程序差不多,只是进行滤波的原理不同, 则采用不 同的函数进行代替,用以下函数可进行中值滤波处理: I = imnoise(handles.image,salt imshow(I); j=medfilt2(I); 前后图片效果如下: 6.3.4.3、边界保持滤波 原理不同,采用 knn 函数是处理边界保持滤波的, 程序代码的形式跟前 两种滤波差不多: I = imnois

12、e(handles.image,salt imshow(I); j=knn2(I); 前后图片效果如下: 6.4、图像分割: 图象分割是按照某些特性(如灰度级 ,频谱 ,颜色,纹理等 )将图象划分成一 些区域,在这些区域其特性是相同的或者说是均匀的,两个相邻区域彼此 特性则是不同的,其间存在着边缘或边界 6.4.1、均匀性度量法 当图像被分为目标物和背景两个类时,属于同一类别的像素值分布方 差最小,也即具有均匀性。 给定一初始阈值 Th=Th0,将图像分为 C1 和 C2 两类 分别计算两类中的方差 分别计算两类在图像中的分布概率 选择最佳阈值Th=Th*, 将图像分为 C1 和 C2 两类,

13、满足 均匀性度量方法的处理结果: 2 2 2 1和 6.4.2、类间最大距离法 . 采用最佳阈值分割后,两类之间的差异最大,且差异采用两类中心与阈 值间的距离差度量 给定一初始阈值 Th=Th0,将图像分为 C1 和 C2 两类 分别计算两类的灰度均值 计算相对距离度量值s 选择最佳阈值Th=Th*, 将图像分为 C1和 C2 两类 图片效果 : 6.4.3、局部阈值法 不均匀照射 ,物体背景对比明显 , 不能只使用一门限 灰度级校正。 图象分成小块 ,选择局部门限 局部阈值法的处理前后结果: 6.5、 颜色空间转化 6.5.1、RGB 转 HSV 21和 max| * SS ThTh 色彩空

14、间相互转化: 其中有很多种色彩空间,这里只介绍两种转换关系: RGB 转 HSV,图像处理中有专门的函数将其进行转化,即 rgb2hvs 函数 转化图像前后对比如下: 6.5.2、RGB 转 HIS 首先获取图像的RGB 3 个通道 R=w(:,:,1); G=w(:,:,2); B=w(:,:,3); 观察 HSI 通道图像 因系统没有rgb2hsi 函数 ,只有 rgb2hsv 函数 ,可自己编写程序实现算法 ,用一个循环处理,分别得到HIS 的色度,饱和度以及强度图,代码在后面实现 图形处理效果如下: 6.6、 其他图像处理功能 6.6.1、锐化 6.6.2、傅里叶 这两个是附加的图像处

15、理功能,在次不做过多的说明,可向大家看看处 理图像结果进行对比一下,看看效果,可在后面附上代码 锐化. 四种傅里叶变 参考文献 【1】 阿奇,戈,阳 .MATLAB 实用教程 M. :电子工业 【2】 精通 matlab61.5_(北航_志涌).pdf 【3】MATLAB 编程 (第二版) MATLAB Programming for Engineers Second Edition) Stephen J. Chapman 著邢树军 碧波 译 【4】相关的 MATLAB 图像处理函数 五、附录 function varargout = two(varargin) % Begin initial

16、ization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, two_OpeningFcn, . gui_OutputFcn, two_OutputFcn, . gui_LayoutFcn, , . gui_Callback, ); if nargin end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end % End initialization code - DO

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号