图像处理实验指导书
- 格式:doc
- 大小:136.50 KB
- 文档页数:25
《数字图像处理》实验指导书前言本实验指导书可作为电子信息工程、通信工程、生物医学工程等专业《数字图像处理》课程的实验指导书。
实验指导书共提供了6个实验,要求在VB环境下实现。
实验名称与学时安排详见下表。
实验名称与学时安排表实验教学基本要求:1、在实验前,认真准备,熟悉和掌握相关实验内容的基本算法和程序设计技术。
2、根据实验目的和要求,按时认真完成各实验的上机操作。
3、实验结束后,要及时提交经调试正确的程序源代码、生成的可执行文件、实验报告书等文档。
实验一图象的读取保存及图像的二值化处理一、实验目的1、熟悉《数字图像处理》的实验平台。
2、了解VB对图像进行处理的基本方法。
3、熟悉彩色图像变成灰度图象以及灰度图像转换成二值图像的基本原理及处理过程。
二、实验准备1、复习彩色图像变成灰度图象以及灰度图像的二值化处理的基本原理。
2、阅读下列内容,了解VB对图像进行处理的基本方法。
(1)读取图像通过扫描仪、摄像机等输入计算机以.bmp、.ico或.wmf存储的图像文件,可用LoadPicture函数把图像文件装入窗体、图片框或图像框中,例如:picture1.picture=loadpicture(“c:\image\flower.bmp”)可以把路径为c:\image\flower.bmp的图像文件装入图片框picture1中。
为了使图片框的大小与图像相匹配,应将图片框的autosize属性设置为True。
(2)用Point方法获取彩色图像的颜色值Point方法的功能是获取图像上指定像素的颜色值。
格式为:Object.Point(x,y)其中,Object表示获取颜色的对象名,(x,y)为取得颜色的坐标位置。
Point 方法将指定位置的像素的颜色值返回一个长整形数。
例如,求图片框picture 1中图像在位置(x,y)的像素颜色值(col)时,可写为:dim col as longcol=picture1.Point(x,y)(3)用Pset方法画点Pset方法的功能是在指定的位置画一个指定颜色的点。
《 Photoshop图形图像处理》实验指导书中山火炬职业技术学院实验一:更换天空背景(2课时)一、实验目的与要求:使用魔棒工具更换图像背景。
使用亮度/对比度命令调整图片的亮度。
使用横排文字工具添加文字,效果如图所示。
二、方法原理:采用photoshop cs2软件的魔棒工具、亮度对比度工具、横排文字工具等完成。
三、准备工作:将相应的素材,发送到学生主机中,以供学生参考使用。
四、操作步骤:导入图片(1)按Ctrl+O键,打开光盘中的“Ch03 > 素材> 更换天空背景> 01、02”文件,效果如图3-2、图3-3所示。
(2)双击“01”素材“背景”图层,在弹出的“新建图层”对话框中进行设置,如图3-4所示,单击“确定”按钮。
在“图层”控制面板中“背景”图层转换为“楼图片”图层。
图3-2 图3-3 图3-4(3)选择“魔棒”工具,在属性栏中将“容差”选项设为25,在属性栏中勾选“消除锯齿”和“连续”复选框,在“01”素材图像窗口中的蓝色天空图像上单击鼠标,生成选区,效果如图3-5所示。
按Delete键,删除选区中的图像,效果如图3-6所示。
图3-5 图3-6 (4)使用相同方法,将图片中的其他蓝色天空图像删除并按Ctrl+D 键取消选区,效果如图3-7所示。
选择“移动”工具,将“02”素材拖曳到“01”素材图像窗口中的上方,在“图层”控制面板中生成新的图层将其命名为“天空图片”,并拖曳到“楼图片”图层的下方,如图3-8所示,图像效果如图3-9所示。
图3-7 图3-8 图3-9 调整图片亮度并添加文字(1)选中“楼图片”图层,单击“图层”控制面板下方的“创建新的填充或调整图层”按钮,在弹出的菜单中选择“亮度/对比度”命令,在“图层”控制面板中生成“亮度/对比度1”图层,同时在弹出的“亮度/对比度”对话框中进行设置,如图3-10所示,单击“确定”按钮,效果如图3-11所示。
图3-10 图3-11(2)选择“横排文字”工具,分别在属性栏中选择合适的字体并设置文字大小,输入需要的白色文字并选取文字,按Alt+向下方向键,调整文字到适当的行距,如图3-12所示,在“图层”控制面板中生成新的文字图层。
实验一图像变换(验证性)1.实验目的熟悉图像的二维离散余弦变换和反变换;熟悉图像的二维离散傅立叶变换和反变换;2.实验内容图像的二维离散余弦变换和反变换及二维离散傅立叶变换和反变换熟悉下列模块函数:rgb2gray - Convert RGB image or colormap to grayscale.uint8 -Convert to unsigned 8-bit integer.dct2 - Compute 2-D discrete cosine transform.idct2 - Compute 2-D inverse discrete cosine transform.fft2 -Two-dimensional discrete Fourier Transformfftshift - Shift zero-frequency component to center of spectrumifftshift - Inverse fftshiftifft2 - Two-dimensional inverse discrete Fourier transform3.原理傅立叶变换是对线性系统进行分析的一个有力工具,它将图像从空域变换到频域,是我们能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪声、显示点等的作用(效应)。
把傅立叶变换的理论同其物理解释相结合,将有助于解决大多数图像处理问题。
在数字图像处理中,输入图像和输出图像通常都是二维的,一般表示成二维数字矩阵,因此,这里直接讨论二维傅立叶变换、二维DFT、二维FFT。
二维M×N的DFT变换和逆DFT变换分别定义如下∑∑-=-=--=101)/2()/2(),(),(M i N k nk N j mi M j e e k i f n m F ππ其中,m=0,1,…,M-1;n=0,1,…,N-1。
∑∑-=-==1010)/2()/2(),(1),(M m N n nk N j miM j e en m F NMk i f ππ其中,m=0,1,…,M-1;n=0,1,…,N-1。
1.1图像点实验1.1.1图像反色实验1.1.1.1实验目的1.熟悉视频显示程序的运行过程、控制过程,搞清数据处理、传输途径;2.结合实例学习如何在视频显示程序中增加图像处理算法;3.了解图像反色的算法和用途;4.了解RF-5 程序框架。
1.1.1.2 实验内容1.系统初始化;2.RF-5 程序框架实现;3.反色算法实现。
1.1.1.3实验背景知识将图像按象素进行求反,取得类似照相底片效果。
求反处理的图像与原始图“黑白颠倒”,可以看清原始图中灰黑区域的情况。
求反的图像一般用于数字图像的初步处理。
设D A表示输入图像的灰度,D B表示输出图像的灰度。
灰度变换方程为:D B=f(D A)=255-D A1.1.1.4程序简介1.1.1.4.1 程序包含文件介绍1.main.c:实验的主程序。
系统使用到资源、CSL、BIOS 以及任务初始化。
2.appData.c:SCOM 模块初始化。
3.tskVideoInput.c:视频输入任务初始化及输入任务处理。
4.tskVideoOutput.c:视频输出任务初始化及输出任务处理。
5.DEC643.gel:系统初始化。
6.*.h:程序使用的头文件。
7.*.lib:程序使用的库文件。
8.link_dm642.cmd:库文件连接命令文件。
9.VideoReverseloop2.tcf:BIOS 配置文件。
10. VideoReverseloop2cfg.cmd:DSP 存储器及资源分配与程序各段的连接关系。
1.1.1.4.2 程序架构简介实验例程采用RF-5(参考设计框架5)实现视频的采集、处理及显示。
程序使用2 个任务模块,视频采集任务以及视频处理输出任务。
(一)初始化模块介绍1.系统初始化模块功能介绍:初始化CSL 以及BIOS设置64K 的CACHE,并将其映射到EMIF 的CE0 及CE1 空间设置DMA 优先级序列,长度2.RF-5 模块初始化初始化RF-5 框架中用于内部单元传递消息的SCOM 模块3.任务模块初始化启动任务存储空间分配及管理(二)任务模块介绍1.输入任务输入任务从输入设备驱动程序获得视频图像,使用FVID(视频驱动程序)提供的FVID_exchange 函数调用输入设备按照4:2:2 格式获取一帧视频图像。
第一章系统介绍一.系统概述图像处理开发套件II是基于TMS320C6000数字信号处理器的图像/视频处理算法的开发平台。
同时还是可以集成各种图像/视频处理应用方面的相关设备。
采用该系统提供的硬件和软件,可以完成彩色/黑白图象的实时采集、显示和处理,将现有的算法转换为相应的应用,并在TMS320C6000数字信号处理器上实现,通过采集和显示终端来评估算法的效果。
该系统除了标准规范的高性能硬件外,同时提供常用的图像处理算法实例,提供良好的应用实例。
本系统应用于图象算法处理课程实验,也可应用于图象处理、图象识别、监控等场合。
二.系统构成和主要性能指标图象处理开发套件II由TMS320C6713DSK、视频板、实验箱、软件算法包、附件构成。
1.2.1 TMS320C6713DSK介绍TMS320C6713DSK套件(以下简称6713DSK),包括一块6713DSK板、+5V稳压电源、USB 电缆、光盘。
图1.1 6713DSK板原理框图6713DSK是一款具有高性能价格比的开发应用板卡。
板上采用高性能浮点数字信号处理器TMS320C6713,并集成了USB2.0仿真器。
1.2.2 视频板介绍该视频板主要基于TMS320C6000、C5000数字信号处理器开发设计。
信号接口完全和C6000、C5000应用板卡兼容,并和TI公司的EVM、DSK板兼容。
可以和C6000、C5000板卡结合完成图象处理,也可以独立使用。
完成视频信号采集、显示、处理。
●前端解码芯片:SAA7111●后端编码芯片:AL250●在线可编程大容量FPGA:逻辑时序控制,SDRAM控制,数据读写逻辑;●扩展SDRAM存储器,暂存图象●与TI公司TMS320C6713 DSK处理板接口● +5V 单电源供电图1.2 视频板功能框图图1.3 视频板接口示意图SW —电源开关 CON3—电源输入插口注意:单独使用时需+5V 稳压电源从CON3插件供电,这时开关SW3打到内侧, 当和TMS320C 6713 DSK 配合使用时,不需外部供电,这时将开关SW3外侧。
《数字图像处理》实验指导书实验一、空域图像处理一、 实验目的1熟悉CCS 集成开发环境的操作和基本功能;2熟悉MATLAB 基本图像操作;3结合实例学习如何在程序中增加图像处理算法;4理解和掌握图像的线性变换和直方图均衡化的原理和应用;5了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;6 了解噪声模型及对图像添加噪声的基本方法。
二、 实验原理1 灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。
)],([),(y x f T y x g =⎪⎩⎪⎨⎧<≤+-<≤+-≤≤=255),(]),([),( ]),([),(0 ),(),(y x f b g b y x f b y x f a g a y x f a y x f y x f y x g b a γβαn y m x ,2,1 ,,,2,1==2 直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像。
按照图像概率密度函数PDF 的定义:1,...,2,1,0 )(-==L k n n r p k k r 通过转换公式获得:1,...,2,1,0 )()(00-====∑∑==L k n n r p r T s k j k j j j r k k3 均值(中值)滤波是指在图像上,对待处理的像素给定一个模板,该模板包括了其周围的临近像素。
将模板中的全体像素的均值(中值)来代替原来像素值的方法。
4 拉普拉斯算子如下:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--------111181111 拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将这个差异加上自身作为新像素的灰度。
三、实验步骤1 启动MA TLAB程序,对图像文件分别进行灰度线性变换、直方图均衡化、均值滤波、中值滤波和拉普拉斯锐化操作;添加噪声,重复上述过程观察处理结果。
2 记录和整理实验报告四、实验仪器1计算机;2 MA TLAB程序;3记录用的笔、纸。
数字图像处理实验指导书臧兰云电子工程学院实验一图像基本运算一、实验目的:1、了解数字图像处理基础2、掌握数字图像处理的基本运算方法3、学习利用matlab进行数字图像处理的基本方法二、实验内容:1、根据图像采样原理,试对lena图像分别进行4和16倍减采样,查看其减采样效果。
2、对一幅图像加入椒盐噪声,并通过减法运算提取出噪声。
3、两幅二值图像进行逻辑与、或、非运算。
4、实现把一幅图像旋转45°,并分别采用把转出显示区域的图像截去和扩大显示区域范围以显示图像的全部两种方式。
5、选取一幅大小为256*256像素的图像,分别将图比例放大1.5倍,比例缩小0.7倍,非比例放大到420*384像素,非比例缩小到150*180像素。
三、思考与总结:1、将一幅图像如果进行4倍、16倍和64倍增采样会出现什么情况?是否有其他方法可以实现图像的采样?2、图像的选转会导致图像的失真吗?若有,有什么办法可以解决这个问题?3、由非比例缩放得到的图片能够恢复到原图片吗?为什么?实验二图像变换及增强一、实验目的:1、掌握图像变换的应用2、掌握数字图像处理的空间域及频域的增强方法二、实验内容:1、构造一幅图像并对其旋转一定的角度,求原始图像及旋转后图像的频谱图。
2、对一幅灰度图像进行均衡化,灰度等级为8级。
3、对一幅灰度图像采用多种方法实现平滑、锐化滤波。
4、对一幅图像进行幂次变换。
三、思考与总结:1、图像变换在图像处理中的应用?2、什么是傅里叶变换的旋转性?3、以上实验分别可以应用到那些实际问题中? 实验三图像压缩编码一、实验目的:1、掌握图像压缩编码的概念2、比较图像压缩编码的各种方法二、实验内容:1、计算一幅灰度图像的熵。
2、选择一种方法对图像进行压缩,并计算压缩比。
三、思考与总结:1、注释程序功能2、以上实验可以应用到那些实际问题中?实验四图像分割及彩色图像处理一、实验目的:1、掌握图像分割的基本原理2、掌握彩色图像处理方法二、实验内容:1、用全局阈值法对图像进行分割2、实现sobel算子及Roberts等算子的边缘提取算法3、生成一幅大小为256*256的RGB图像。
实验一Matlab图像处理工具箱的初步练习一. 实验目的1. 掌握有关数字图像处理的基本概念;2. 熟悉Matlab图像处理工具箱;3. 熟悉使用Matlab进行数字图像的读出和显示;4. 熟悉运用Matlab指令进行图像旋转和缩放变换。
二. 练习1. 文件的读入与显示(1) 运行Matlab。
(2) MATLAB窗口构成:在缺省的情况下,由三个窗口组成。
命令窗口(command window)、命令历史(command history)、工作空间(workspace)。
注意:缺省窗口的设置步骤为:MATLAB菜单/view选项/Desktop layout/default。
(3) 调入一个文件:i=imread('pout.tif');%注意:前面的“%”是用于注释的,不会被执行,只是说明这个语句的作用。
此时的i出现在什么窗口?是什么类型的变量?大小是多少?(4) 显示这幅图:imshow(i);(5) 将变量i转置成j,即j=i';显示j即imshow(j);%在胸前左侧花纹怎么会跑到右边的呢?举一个例子加以验证:设a=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15];b=a’;此时的b与a有什么区别?(6) 写入到一个新的图像文件'abc.tif'中,即imwrite(j,'abc.tif')。
(7) 清除变量命令:clear执行这个命令后,workspace窗口中的变量有没有?怎么验证?(8) 清除用户开设的窗口命令:close all(9) 调入图像文件'abc.tif'并显示。
问题:(1) 操作符“’”是图像的转置的意思,转置两次后,是否回到原图像?(2) 命令后的符号“;”所起的作用是什么?(3) 命令是否可以大写母?2. 灰度图像分别选择不同的灰度级(如2、4、16、64、128个)来显示同一幅图像(如testpat1.tif)。
图像处理技术实验指导书彭智勇实验一 matlab数字图像处理基础基本内容:●熟悉MatLab软件中图像输入/输出/显示/转换的基本命令;●了解图像IO基本函数、矩阵与图像和图像格式的对应关系、灰度/彩色/二值图像的相互转换数字图像基础.●数字图像读入与输出:InImg=imread(‘图像文件’): 读入指定的图像文件到内存InImg:矩阵变量,保存读入的数字图像;图像文件:全路径的图像文件名(格式为:*.bmp 或 *.jpg);例如: InImg=ImRead(‘d:\DirName\demoImg_InPut.bmp’)imwrite(OutImg, ‘图像文件’): 输出内存中图像数据到文件OutImg:矩阵变量,保存的数字图像;图像文件:全路径的图像文件名(格式为:*.bmp 或 *.jpg);例如: ImWrite (OutImg ,‘d:\DirName\demoImg_outPut.bmp’)将OutImg中的矩阵数据作为图像文件保存;whos ImgData: 屏幕输出图像的相关信息ImgData: 矩阵变量,保存在内存中的数字图像●数字图像显示:imshow(ImgData): 将图像文件显示到屏幕ImgData: 矩阵变量,保存待显示的数字图像;例如: InImg=ImRead(‘d:\DirName\demoImg_InPut.bmp’)Imshow(InImg) (显示读入的图像文件)subPlot(行数,列数,区域索引); imshow(ImgData): 将图像文件显示到指定的屏幕区域ImgData: 矩阵变量,保存待显示的数字图像;行数,列数:屏幕划分区域数(行数x列数); 区域索引:第n块区域(1<=n<=行数x列数)例如: InImg=ImRead(‘d:\DirName\demoImg_InPut.bmp’)subPlot(1,2,1);Imshow(InImg) : 将图像文件显示到屏幕第一块区域●数字图像转换:I=rgb2gray(rgbImg):将彩色图像转换为灰度图像rgbImg: 矩阵变量,保存彩色图像;I: 矩阵变量,保存灰度图像例如: InImg=ImRead(‘d:\DirName\demoImg_InPut.bmp’)I=rgb2gray(InImg)subPlot(1,2,1);Imshow(InImg) : 显示彩色图像于屏幕第一块区域subPlot(1,2,2);Imshow(I) : 显示灰度图像于屏幕第二块区域bw=im2bw(Img,level):将灰度图像转换为二值图像;Img: 矩阵变量,保存彩色图像或灰度图像;level: 灰度级(> level 为1;< level 为0)bw: 矩阵变量,二值图像例如: InImg=ImRead(‘d:\DirName\demoImg_InPut.bmp’)bw = im2bw (InImg,0.5)subPlot(1,2,1);Imshow(InImg) : 显示彩色图像于屏幕第一块区域subPlot(1,2,2);Imshow(bw) : 显示灰度图像于屏幕第二块区I=mat2gray(X) : 将矩阵转换为灰度图像;X: 矩阵变量;I: 灰度图像;练习要求:①熟悉运用以上命令,将给定彩色图像转换为灰度图像,设定不同的门限值将其二值化,对比前后结果,将16x16的矩阵转化为灰度图像,要求将以上结果在同一窗口的不同块区显示出来及保存成磁盘文件。
《图像处理》实验指导书10学时指导教师:张葵实验报告要求1、做好实验相关预习工作,了解实验的目的与内容。
每次实验报告中,首先写清实验目的。
然后,写出实验内容中的题目、程序清单(加上必要注释)、程序运行结果(可将图像处理效果图附在实验报告中;对综合应用性较高的题目,要求在给出代码前,绘制算法设计的流程图)。
最后,给出100-50字的实验体会或总结。
要求必须写在实验报告中,图片效果可以剪贴到报告册上。
每次实验报告首页页眉写上实验时间、指导老师姓名。
2、实验报告要求手写在实验报告册中,请勿打印。
3、实验报告中,有些内容是指导性的内容,不需要写在报告中。
因此有些编号需要调整,从1开始。
4、实验报告成绩按照报告书写的质量、注释的质量、程序的质量给分。
5、实验中需要用到的图片文件已经放到机房的E盘pics文件夹下。
实验一Matlab图像显示与图像运算(2学时)【实验目的】1、熟悉Matlab的编程环境及其基本用法;2、掌握MATLAB语言中图像数据与信息的读取方法;了解m文件的编写与调试方法;3、熟悉图像点运算和代数运算的实现方法;4、掌握Matlab图像几何变换的基本函数;5、了解图像几何运算的简单应用;【实验内容】1、IntroductionIn the following we give a short overview on a very limited set of basic image processing functions provided by MATLAB. The function descriptions only cover the basic usage, more detailed information can be found in the manual pages by typing doc functionName at the MATLAB command line. MATLAB provides with it’s image processing toolbox many powerful and very efficient image processing functions (see function list of the image processing toolbox). With this it is very simple to implement complex image processing applications, especially for fast prototyping. On the backside, a lot of understanding how image processing works is hidden within black boxes and temps to make things more complicate than they really are.2、Image representationIn MATLAB a binary and gray-scale image is represented by one 2-dimensional array, whereas a color image are represented by a 3-dimensional array (one 2-dimensional array for each of the color planes or color channels red, green and blue):The origin of the image is in the upper left and the size of the image is defined by the parameter width (number of columns of the array) and height (number of rows of the array). Note that the x- and y-coordinates are chosen such that the z-axis points to the front.A single point within the image is called pixel. A gray-scale or binary pixel consists of one data value, a color pixel consists of 3 data values (each for one of the color channels). The most common data types of the individual pixels are:uint8 unsigned integer: data range 0..255double double precision float: data range 0.0 ... 1.0Binary images have pixel values of 0’s and 1’s resp. 0.0 and 1.0. In the case of uint8 images, the logical flag must be turned on, to be recognized as binary image (for details see below).Be careful with data types in MATLAB. Many of the predefined functions, e.g. imadd(img1, img2) which adds two images, just truncates data values to 255 on uint8-arrays ... make sure if that is what you want.Hints:To avoid problems with data types, especially when working with predefined image processing functions, it is advisory to work with type double and make sure that data is scaled to the range 0 ...1.0.3、Basic MATLAB functions3.1 MATLAB manualdoc functionname displays the manual for the MATLAB function functionnamedoc images the manual for the image processing toolboxdoc imaq the manual for the image acquisition toolbox3.2 Image informationimfinfo(’foo.ext’)displays information on image format etc. of the file foo.extimformats displays an overview of all MATLAB image formatswhos img displays information about the array img: size, data type, etc.3.3 Reading, writing and displaying imagesmyImg = i mread(’foo.ext’)reads file foo.ext into array myImg, image format is determined bythe file extension (jpg, tiff, tif, gif, bmp, png, ...)imwrite(anImg, ’foo.ext’)writes the image anImg to the file foo.ext, where the image format ischosen according to the extension ext. Valid extensions are: tif, tiff,jpg, jpeg, gif, pngimshow(myImg) displays the image myImg as gray-scale, binary or color image depending on the data type of myImgimshow(myImg,[]) the image myImg as gray-scale, binary or color image depending onthe data type of myImg and scales the image properlyfigure(n) opens a new window with number n, the next call to imshow()displays the image within this window3.4 Basic image processing functionsislogical(binImg) checks whether array binImg has the logical flag set or not(returns value 1 or 0)img = uint8(zeros(512,1024)) creates a black image with width 1024 and height 512 of typeuint8img = uint8(255*ones(512,1024)) creates a white image with width 1024 and height 512 of typeuint8img = double(zeros(512,1024)) creates a black image with width 1024 and height 512 oftype doubleimg = double(ones(512,1024)) creates a white image with width 1024 and height 512 oftype double[height width d] = size(myImg) retrieves height and width and stores the values invariables height and width, d ist set to the arraydimension.red = myImg(:,:,1) stores the red component of myImg (rgb-image) in array red green = myImg(:,:,2) stores the red component of myImg in array greenblue = myImg(:,:,3) stores the red component of myImg in array bluemx = max(myImg(:))) computes the maximum value of an 2-d arraymi = min(myImg(:))) computes the minimum value of an 2-d arrayimg = double(myImg)/255 converts an uint8 array to a double array (no scaling) img = double(myImg)/double(mx) converts uint8 to double and scales maximum to 1.0i mg = uint8(anImg*255) converts a double array to an unit8 array and rescales thearray to the proper data rangebw = logical(binImg) sets the logical flag on the unit8 array binImg (data values0 and 1), array bw is then interpreted as a black and whiteimage and logical operations can be appliedgray = (+bw)*255 turns the logical flag off and rescales the array bw to bedisplayed as unit8 array3.5 Examples3.5.1 Scaling imagesThe following two statements scale a double type image to the range 0.0 ... 1.0. This is important, when the image contains negative pixel values, as e.g. after applying edge detection algorithms.f = f - min(f(:));f = f / max(f(:));3.5.2 Color planesThe green and red color plane of image rgbimage.jpg are swapped:f = i mread(’rgbimage.jpg’);red = f(:,:,1);g(:,:,1) = f(:,:,2);g(:,:,2) = red;g(:,:,3) = f(:,:,3);imshow(g);3.5.3 Individual pixel processingThe intensity of the red color channel of rgbImage.jpg is divided by 2.f = imread(’rgbImage.jpg’);[M N d] = size(f);g = unint8(zeros(M,N,3));for x = 1:Mfor y = 1:Ng(x,y,1) = f(x,y,1) / 2;g(x,y,2) = f(x,y,2);g(x,y,3) = f(x,y,3);end;end;imshow(g);Using the MATLAB array notation, this may be written as:f = imread(’rgbImage.jpg’);g = f;g(:,:,1) = g(:,:,1) / 2;imshow(g);The image color image rgbImage.jpg is converted to a grayscale image, by simply computing the mean of the three color channels (one possible method) and then stored in file grayImage.jpg. Note that the quality of the resulting image is set to 100 (no data loss):f = imread(’rgbImage.jpg’);[M N d] = size(f);g = unint8(zeros(M,N));for x = 1:Mfor y = 1:Ng(x,y) = (f(x,y,1) + f(x,y,2) + f(x,y,3)) / 3;% The line above doesn’t work.% Overflow occurs, while processing uint8, because% the value range in the intermediate results are limited to 255g(x,y) = (f(x,y,1)/3 + f(x,y,2)/3 + f(x,y,3)/3);end;end;imshow(g);imwrite(g, ’grayImage.jpg’, ’Quality’, 100);Using the MATLAB array notation, this may be written as:f = imread(’rgbImage.jpg’);g = uint8(mean(f,3));imshow(g);imwrite(g, ’grayImage.jpg’, ’Quality’, 100);The image grayImage.jpg is slightly blurred by computing the mean of a 3x3 pixel environment and by setting the resulting center pixel to this mean value:f = imread(’grayImage.jpg’);[M N d] = size(f);g = unint8(zeros(M,N));for x = 2:M-1for y = 2:N-1sum = f(x-1,j-1) + f(x-1,j) + f(x-1,y+1);sum = sum + f(x,y-1) + f(x,y) + f(x,y+1);sum = sum + f(x+1,y-1) + f(x+1,y) f(x+1,y+1);rImg(x,y) = unint8(sum/9);end;end;imshow(g);The same functionality could be achieved, by using MATLAB’s powerful image processing functions and in addition avoids the boundary problem:f = imread(’grayImage.jpg’);h = fspecial(’average’,3);g = imfilter(f, h, ’replicate’);imshow(g);蓝色字体部分不用写在实验报告上,此部分实验内容辅助大家了解相关matlab图像处理函数。