matlab数字图像处理实验指导
matlab图像处理实验

matlab图像处理实验实验⼀ Matlab语⾔、数字图象基本操作⼀、实验⽬的1、复习MATLAB语⾔的基本⽤法;2、掌握MATLAB语⾔中图象数据与信息的读取⽅法;3、掌握在MATLAB中绘制灰度直⽅图的⽅法,了解灰度直⽅图的均衡化的⽅法。
⼆、实验原理MATLAB是集数值计算,符号运算及图形处理等强⼤功能于⼀体的科学计算语⾔。
作为强⼤的科学计算平台,它⼏乎能够满⾜所有的计算需求。
MATLAB软件具有很强的开放性和适⽤性。
在保持内核不变的情况下,MATLAB可以针对不同的应⽤学科推出相应的⼯具箱(toolbox)。
⽬前,MATLAB已经把⼯具箱延伸到了科学研究和⼯程应⽤的诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在⼯具箱(Toolbox)家族中有⾃⼰的⼀席之地。
在实验中我们主要⽤到MATLAB提供图象处理⼯具箱(Image ProcessingToolbox)。
1、MATLAB与数字图像处理MATLAB全称是Matrix Laboratory(矩阵实验室),⼀开始它是⼀种专门⽤于矩阵数值计算的软件,从这⼀点上也可以看出,它在矩阵运算上有⾃⼰独特的特点。
实际上MATLAB中的绝⼤多数的运算都是通过矩阵这⼀形式进⾏的。
这⼀特点也就决定了MATLAB在处理数字图像上的独特优势。
理论上讲,图像是⼀种⼆维的连续函数,然⽽在计算机上对图像进⾏数字处理的时候,⾸先必须对其在空间和亮度上进⾏数字化,这就是图像的采样和量化的过程。
⼆维图像进⾏均匀采样,就可以得到⼀幅离散化成M×N样本的数字图像,该数字图像是⼀个整数阵列,因⽽⽤矩阵来描述该数字图像是最直观最简便的了。
⽽MATLAB的长处就是处理矩阵运算,因此⽤MATLAB处理数字图像⾮常的⽅便。
MATLAB⽀持五种图像类型,即索引图像、灰度图像、⼆值图像、RGB图像和多帧图像阵列;⽀持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像⽂件格式的读,写和显⽰。
数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验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、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验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); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title(’均衡化后图像’) %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图’)%在均衡化后直方图上加标题四.实验步骤1。
数字图像处理实验指导书matlab冈萨雷斯

《数字图像处理》实验指导书实验一、空域图像处理一、 实验目的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记录用的笔、纸。
Matlab图像处理实验指导书(1-3)(精)

河南工业大学《数字图像处理》课程实验指导书信息科学与工程学院2011年3月实验一 Matlab图像显示方法一、实验目的1.了解Matlab的基本功能及操作方法2.练习图像读写和显示函数的使用方法3.掌握Matlab支持的五类图像的显示方法二、实验内容1.图像的读写%matlab自带图像在安装路径下\toolbox\images\imdemosA图像读RGB = imread('ngc6543a.jpg';B图像写先从一个.mat 文件中载入一幅图像,然后利用图像写函数imwrite,创建一个.bmp 文件,并将图像存入其中。
load clownwhosimwrite(X,map,'clown.bmp'C图像文件格式转换bitmap = imread('clown.bmp','bmp';imwrite(bitmap,'clown.png','png';2.图像显示A二进制图像的显示BW1=zeros(20,20; %创建仅包含0/1的双精度图像BW1(2:2:18,2:2:18=1;imshow(BW1,'notruesize'; %double类型[0,1]whosBW2=uint8(BW1;figure,imshow(BW2,'notruesize'figure,imshow(BW2,[],'notruesize' %uint8类型[0,255] BW3=BW2~=0; %逻辑标志置为onfigure,imshow(BW3,'notruesize'whosB灰度图像的显示I=imread('spine.tif';J=filter2([1 2;-1 -2],I;imshow(I,[]figure,imshow(J,[]C索引图像的显示load clown %装载一幅图像imwrite(X,map,'clown.bmp'; %保存为bmp文件imshow(Ximshow(X,mapDRGB图像的显示I=imread('trees.tif';imshow(IRGB=imread('ngc6543a.jpg';figure,imshow(RGBimshow(RGB(:,:,3 % 显示第3个颜色分量E多帧图像的显示mri=uint8(zeros(128,128,1,27; % 27帧文件mri.tif初始化for frame=1:27[mri(:,:,:,frame,map]=imread('mri.tif',frame; % 读入每一帧endfigure;imshow(mri(:,:,:,3,map; % 显示第3帧figure,imshow(mri(:,:,:,6,map; % 显示第6帧figure,imshow(mri(:,:,:,10,map; % 显示第10帧figure,imshow(mri(:,:,:,20,map; % 显示第20帧figure;hold on;for frame=1:27hold on;imshow(mri(:,:,:,frame,map; % 读入每一帧pause(0.1endF显示多幅图像[X1,map1]=imread('forest.tif';[X2,map2]=imread('trees.tif';figure;subplot(1,2,1,imshow(X1,map1subplot(1,2,2,imshow(X2,map2figure;subplot(1,2,1,subimage(X1,map1subplot(1,2,2,subimage(X2,map2三、思考题:1.图像显示时,若不带参数’notruesize’,显示效果如何?2.如何显示RGB图像的某一个颜色分量?3.如何显示多帧图像的所有帧?如何根据多帧图像创建电影片段?%pause(n 实验二图像变换一、实验目的1.了解傅立叶变换及离散余弦变换在图像处理中的应用二、实验内容1.傅立叶变换A绘制一个二值图像矩阵,并将其傅立叶函数可视化。
数字图像处理实验指导书(带源程序)

实验一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)。
数字图像处理实验指导书

实验一数字图像处理编程基础一、实验目的1. 了解MATLAB图像处理工具箱;2. 掌握MATLAB的基本应用方法;3. 掌握MATLAB图像存储/图像数据类型/图像类型;4. 掌握图像文件的读/写/信息查询;5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法;6. 编程实现图像类型间的转换。
二、实验原理略。
三、实验内容1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。
2. 运行图像处理程序,并保存处理结果图像。
四、分析思考归纳总结Matlab各个基本指令。
实验二 图像几何变换实验一、实验目的1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现;3.掌握matlab 编程环境中基本的图像处理函数。
二、实验原理1. 初始坐标为(,)x y 的点经过平移00(,)x y ,坐标变为(',')x y ,两点之间的关系为:00''x x x y y y =+⎧⎨=+⎩,以矩阵形式表示为: 00'10'0110011x x x y y y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦2. 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为:'100'01010011x x y y -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ '100'01010011x x y y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦3. 图像缩小和放大变换矩阵相同:'00'0010011X yx S x y S y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦当1x S ≤,1y S ≤时,图像缩小;当1x S ≥,1y S ≥时,图像放大。
数字图像处理的MATLAB实现(新实验指导书)

实验一用MATLAB实现图像的傅里叶变换1. 目的(1)掌握二维傅里叶变换的原理。
(2)掌握二维傅里叶变换的性质。
2. 任务(1)选择一幅灰度图像,对其进行离散傅立叶变换,观察其离散傅立叶的频谱。
(2)通过零填充改变图像的大小,对其进行离散傅立叶变换,观察其离散傅立叶的频谱,分析零填充对傅里叶变换频率分辨率的影响。
(3)对选取的灰度图像进行离散傅里叶变换,并将频谱的零频率部分由左上角平移到频谱中心,观察并分析频谱中各频率成分的分布。
(4)对选取的灰度图像旋转一定的角度,观察并分析灰度图像傅里叶频谱和旋转后图像的傅里叶频谱之间的对应关系。
3. 思考题举例说明二维傅里叶变换的应用。
答:傅立叶变换是一种非常有用的积分变换,它能把时域信息变换到频域信息进行处理。
这里我们主要讲二维傅立叶变换在图像处理中的应用。
4. 实验结果:实验二用MATLAB实现图像增强1. 目的(1)掌握图像增强的基本原理。
(2)掌握常用的图像增强技术。
(1)选择一幅直方图不均匀的灰度图像,对该图像做直方图均衡化处理,观察并分析直方图均衡化前、后图像以及它们的灰度直方图的变化。
(2)选择一幅灰度图像,利用邻域平均法对它进行滤波,观察并分析滤波器的大小对滤波结果的影响。
(3)选择一幅灰度图像,对它添加椒盐噪声,然后分别利用邻域平均和中值滤波对该图像进行滤波,比较这两种滤波器的滤波效果。
(4)选择一幅灰度图像,分别利用拉普拉斯滤波器和sobel滤波器对该图像进行锐化,比较这两种滤波器的锐化效果。
3. 思考题直方图均衡化处理的主要步骤是什么?答:直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。
设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。
在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数): (1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。
数字图像处(MATLAB)实验指导书

附录五实验报告格式报告人:专业年级:学号:实验日期:报告完成日期:一、实验名称××××××二、实验目的:××××××三、实验内容:(结合实验指导书和课本,列出自己在本次实验中练习或验证了什么)四、回答问题:(回答实验指导书中提出的问题)五、遇到的问题及解决:(列出实验和求解思考题的过程中遇到的问题及解决方法)六、体会:(小结出从本次实验中学会了什么,难点是什么,有什么想法和体会)74持2维标注矩阵。
'Image' 二值图像,与某区域具有相同大小的逻辑矩阵。
可以用这个属性直接将每个子区域提取出来,然后再作相应的处理'FilledImage' 与上相同,唯一区别是这是个做了填充的逻辑矩阵。
只有区域有空洞时'Image'和'FilledImage'才有明显差别'Solidity' 是标量,同时在区域和其最小凸多边形中的像素比例。
计算公式为:Area/ConvexArea,这也是个仿射特征,实际上反映出区域的固靠性程度。
此属性只支持2维标注矩阵。
'MajorAxisLength'是标量,与区域具有相同标准二阶中心矩的椭圆的长轴长度(像素意义下)。
'MinorAxisLength'是标量,与区域具有相同标准二阶中心矩的椭圆的短轴长度(像素意义下)。
本属性只支持二维标注矩阵。
'PixelList' p行ndims(L)列矩阵,存储上述索引对应的像素坐标。
'PixelIdxList' p元向量,存储区域像素的索引下标。
'Extent' 是标量,同时在区域和其最小边界矩形中的像素比例。
计算公式为:Area除以边界矩形面积,这也是个仿射特征,实际上反映出区域的扩展范围程度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
figure, imshow(J3) help imadjust
% Display the imadjust() function information.
3ˊぎඳᑇ⒥Ⓒ⊶˄㊞ǃএా˅ clear all; close all I = imread('eight.tif'); h1 = ones(3,3) / 9; h2 = ones(5,5) / 25; I1 = imfilter(I,h1); I2 = imfilter(I,h2); figure(1), imshow(I), title('Original Image'); figure(2), imshow(I1), title('Filtered Image With 3*3 ') figure(3), imshow(I2), title('Filtered Image With 5*5 ') % ࡴܹGaussian ాໄ J1 = imnoise(I,'gaussian',0,0.005); % ࡴܹỦⲤాໄ J2 = imnoise(I,'salt & pepper',0.02); % ᇍJ1ǃJ2䖯㸠ᑇഛؐᑇ⒥Ⓒ⊶ K1 = imfilter(J1,fspecial('average',3)); K2 = imfilter(J2,fspecial('average',3)); figure(4); subplot(2,2,1), imshow(J1) , title('gaussian'); subplot(2,2,2), imshow(J2), title('salt & pepper '); subplot(2,2,3), imshow(K1), title('average '); subplot(2,2,4), imshow(K2); % ᇍJ1ǃJ2䖯㸠ЁؐⒸ⊶ K3 = medfilt2(J1,[3 3]); K4 = medfilt2(J2,[3 3]); figure(5); subplot(2,2,1), imshow(J1) , title('gaussian'); subplot(2,2,2), imshow(J2), title('salt & pepper '); subplot(2,2,3), imshow(K3), title(' Median filtering '); subplot(2,2,4), imshow(K4) 4ˊぎඳ䫤࣪Ⓒ clear all; close all I = imread('moon.tif'); w=fspecial('laplacian',0) w8=[1,1,1;1,-8,1;1,1,1] I1= imfilter(I,w, 'replicate'); figure(1); imshow(I), title('Original Image');
⊼ᛣ˖imadjust() ࡳ㛑˖ 䇗ᭈ♄ڣᑺؐ买㡆ڣ㸼ˈгৃᅲ⦄ԑ偀᷵ℷDŽ 䇁⊩˖
J = imadjust(I,[low_in high_in],[low_out high_out],gamma) newmap = imadjust(map,[low_in high_in],[low_out high_out],gamma) RGB2 = imadjust(RGB1,...)
《数字图像处理》
实验指导书
山东农业大学
2010年9月
Ⳃ
ᔩ
ᅲ偠ᅜ߭ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ ᅲ偠ϔڣᔎϢᑇ⒥ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ ᅲ偠ѠࡆߚڣϢ䖍㓬Ẕ⌟ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ ᅲ偠ϝⱘڣԩবᤶĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ ᅲ偠ಯڣᔶᗕᄺ໘⧚ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ ᅲ偠Ѩ乥ඳবᤶĂĂĂĂĂĂቤተ መጻሕፍቲ ባይዱĂĂĂĂĂĂĂĂĂĂĂĂĂĂ ᅲ 偠 ݁ ᭄ ᄫ ڣ໘ ⧚ ᑨ ⫼ Ă Ă Ă Ă Ă Ă Ă Ă Ă Ă Ă Ă Ă Ă Ă 䰘ᔩ 0$7/$% ㅔҟĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ 䰘ᔩ ᅲ偠ਞ㣗՟/2* Ⓒ⊶఼ᦤপ䖍㓬ĂĂĂĂĂĂĂĂĂ
3
figure(2), imshow(I1), title('Laplacian Image'); f = im2double(I); f1= imfilter(f,w, 'replicate'); figure(3), imshow(f1,[]), title('Laplacian Image'); f2= imfilter(f,w8, 'replicate'); f4 = f-f1; f8 = f-f2; figure(4), imshow(f4); figure(5), imshow(f8); 5ˊⱘڣЎᔽ㡆໘⧚—ᆚᑺߚࡆ clear all, close all I = imread('ngc4024m.tif'); X = grayslice(I,16); imshow(I), title('Original Image') figure, imshow(X,jet(16)), title('Index Color Image') ˄Ѡ˅䞛⫼MATLABᑩሖߑ᭄㓪ᅲ⦄ҹϟ♄ᑺ㒓ᗻবᤶ ؛ᅮॳڣf(x, y)ⱘ♄ᑺ㣗ೈЎ˷a, b˹ˈᏠᳯবᤶৢ ڣg(x, y)ⱘ♄ᑺ㣗ೈᠽሩ㟇 ˷c, d˹ˈ߭㒓ᗻবᤶৃ㸼冫Ў˖ d c g ( x, y ) [ f ( x, y ) a ] c ba ⫼MATLABᑩሖߑ᭄㓪ᅲ⦄Ϟ䗄বᤶߑ᭄DŽ㾖ᆳ ‘ڣpout.tif’ⱘ♄ᑺⳈᮍˈ䗝 ᢽড়䗖ⱘখ᭄˷a, b˹ǃ˷c, d˹ᇍڣþpout.tifÿ䖯㸠♄ᑺবᤶˈҹ㦋ᕫ⒵ᛣⱘ㾚㾝ᬜ ᵰDŽ
1
ᅲ偠ϔڣᔎϢᑇ⒥
ϔˊᅲ偠Ⳃⱘঞ㽕∖
1ˊњ㾷MATLABⱘ᪡⦃๗ᴀࡳ㛑DŽ 2ˊᥠᦵMATLABЁڣᔎϢᑇ⒥ⱘߑ᭄ⱘՓ⫼ᮍ⊩DŽ 3ˊࡴ⏅⧚㾷ڣᔎϢᑇ⒥ⱘㅫ⊩ॳ⧚DŽ
Ѡǃᅲ偠ݙᆍ
˄ϔ˅ⷨおҹϟᑣˈߚᵤᑣࡳ㛑˗䕧ܹᠻ㸠ੑҸ㸠ˈ䅸ⳳ㾖ᆳੑҸᠻ㸠ⱘ㒧 ᵰDŽ❳ᙝᑣЁ᠔Փ⫼ߑ᭄ⱘ䇗⫼ᮍ⊩ˈᬍব᳝݇খ᭄ˈ㾖ᆳ䆩偠㒧ᵰDŽ ˄ৃᇚ↣↉ ᑣֱᄬЎϔϾ.m᭛ӊ˅ 1ˊⳈᮍഛ㸵࣪ clear all; close all I = imread('pout.tif'); imshow(I) figure, imhist(I)
% Clear the MATLAB workspace of any variables % and close open figure windows. % Reads the sample images ‘ pout.tif’, and stores it in % an array named I.display the image % Create a histogram of the image and display it in % a new figure window. % Histogram equalization.
ᅲ
偠
ᅜ
߭
Ўњࡴᔎᅲ偠ᅸㅵ⧚ˈᦤ催ᅲ偠ᬭᄺ䋼䞣ˈݏᄺ⫳⧚䆎㘨㋏ᅲ䰙ⱘᄺ亢ˈᦤ催ᅲ 䰙᪡ᡔ㛑ˈ⹂ֱҎ䑿䆒ⱘᅝܼˈ⡍ࠊᅮབϟᅜ߭˖ ˊᅲ偠ࠡ㽕䅸ⳳ乘дˈњ㾷ᅲ偠Ⳃⱘǃᅲ偠ॳ⧚ǃᅲ偠㒓䏃ǃᅲ偠ℹ偸ঞ℆⌟ⱘ ⠽⧚䞣DŽ❳ᙝᅲ偠᳝݇ⱘҾ఼䆒ⱘ⫼䗨ǃՓ⫼ᮍ⊩ঞ⊼ᛣџ乍DŽ㛑ಲㄨᣛᇐᬭᏜⱘ ᦤ䯂DŽ ˊ↣Ͼᅲ偠ᇣ㒘㽕䗝ߎ㒘䭓 ৡˈᅲ偠ᯊ㽕䅸ⳳߚᎹˈ䕂⌕ᔧ䆄ᔩਬ᪡㗙ˈ ҹ֓↣ϾҎ䛑㛑ᕫࠄ䕗ܼ䴶ⱘ䆁㒗DŽᅲ偠㒓䏃དৢˈ㒘ᄺ⫳㽕㞾㸠Ẕᶹˈ✊ৢ䇋ᣛ ᇐᬭᏜẔᶹˈ㒣Ẕᶹ᮴䇃ৢᮍৃ䗮⬉⑤DŽᬍ㒓䏃ᖙ乏ܜᮁᓔ⬉⑤ˈҹܡ㾺⬉ঞᤳണ Ҿ㸼DŽᬍৢⱘ㒓䏃ҡ䳔㒣ᬭᏜẔᶹDŽ ˊᅲ偠ᯊᑨҢᬭᏜᣛᇐˈϹḐᣝᅲ偠ℹ偸䖯㸠ˈབᅲ䆄ᔩᅲ偠᭄ˈ鳥ᵕᗱ㗗 ߚᵤᅲ偠Ёথ⫳ⱘ⦄䈵DŽᅲ偠Ёབ䘛џᬙᑨゟे݇ᮁ⬉⑤ǃֱᣕ⦄എˈਞᣛᇐᬭᏜ ঞᯊ໘⧚DŽབ᳝ᤳണҾ఼఼ӊˈ㽕฿ݭџᬙॳঞᤳऩDŽ ˊᅲ偠ᅠ↩ᑨゟे݇ᮁ⬉⑤ˈᡞᅲ偠䆄ᔩѸᣛᇐᬭᏜẔᶹড়Ḑৢᮍৃᢚ䰸㒓䏃DŽ བথ⦄ᅲ偠䆄ᔩ᳝ϡᔧ䫭䇃Пˈᑨゟे䞡DŽ㽕ᡞ᠔᳝Ҿ఼ǃҾ㸼ǃᎹǃᇐ㒓ᭈ ⧚དDŽ㒣ᣛᇐᬭᏜ⏙⚍ৢᮍৃ行ᓔᅲ偠ᅸDŽ ˊ㽕⠅ᡸ݀⠽DŽᅲ偠ᅸ᠔᳝ⱘҾ㸼ǃᎹǃ఼ӊㄝϔᕟϡᕫ᪙㞾ᏺߎDŽᅲ偠Ёབ 䳔ᤶҾ఼ǃҾ㸼ǃᎹǃ఼ӊㄝˈᖙ乏㒣ᣛᇐᬭᏜৠᛣDŽϡᕫ᪙㞾ᤶхᣓҪ㒘⠽ કDŽ㒣ܕ䆌ˈϡᕫ᪙㞾ᢚौᅲ偠⫼ⱘҾ఼ǃ䆒DŽ ˊᅲ偠ᯊ㽕Ϲ㙗䅸ⳳˈ䆆お᭛ᯢǃ凵䉠ˈ㽕ֱᣕᅝ䴭ᅸݙᭈ⋕ˈϡ䱣ഄ⯄ хᡯᴖ⠽DŽᅲ偠ᅠ↩㽕ᠧᠿᅲ偠ᅸि⫳DŽ ˊкݭᅲ偠ਞᯊˈ䇁㿔㽕∖ㅔ㒗ˈкݭᑨッℷˈᑨℷ㾘DŽᅲ偠ਞϔ㠀 ᑨࣙᣀҹϟݙᆍ˖ ᅲ偠Ⳃⱘ˗᠔⫼Ҿ఼ǃҾ㸼ǃ఼ӊⱘৡ鹵ঞ㾘Ḑൟো˗ᅲ偠⬉䏃ॳ⧚DŽ ᅲ偠乍Ⳃ ᣛᇐкЁⱘ䆺㒚ݙᆍϡᖙᡘᔩ ˗⌟䆩䆄ᔩ㸼˗⊶ᔶঞ⦄䈵䆄ᔩDŽ ᅲ偠᭄ᭈ⧚ˈ䅵ㅫৢⱘ㒧ᵰǃঞḍᅲ偠᭄㒬ࠊⱘ᳆㒓DŽ ᅲ偠ߚᵤˈᑨࣙᣀϢ⧚䆎䅵ㅫؐⱘ↨䕗ǃ⦄䈵ߚᵤDŽ ˊ݇Ѣᅲ偠㗗Ḍ˖ ᄺ⫳ᅲ偠䇒Ёⱘᅲ䰙ᡔ㛑∈ᑇϢᅲ偠ਞⱘ䋼䞣ᰃ䆘ᅮᴀ䇒ᅲ偠៤㒽ⱘᷛޚDŽ 辵ॳ㔎خᅲ偠㔎Ѹᅲ偠ਞ㗙ˈᅲ偠៤㒽㽕ফᕅડDŽ
Ѩǃᅲ偠ਞ㽕∖
1. 2. 3. 4.
4
ㅔ䗄䆩偠ⱘⳂⱘ䆩偠ॳ⧚˗ ভ䗄↉ᑣࡳ㛑ˈᬍব᳝݇ߑ᭄ⱘখ᭄ˈߚᵤ↨䕗ᅲ偠㒧ᵰ˗ ᠧॄߎ᠔㓪ⱘݭᅲ偠ᑣDŽ ߎݭᴀᅲ偠ⱘᖗᕫԧӮঞᛣ㾕DŽ
ᅲ偠Ѡ
ϔˊᅲ偠Ⳃⱘঞ㽕∖
ࡆߚڣϢ䖍㓬Ẕ⌟
1ˊ߽⫼ MATLAB ⷨおࡆߚڣϢ䖍㓬Ẕ⌟ⱘᐌ⫼ㅫ⊩ॳ⧚˗ 2ˊᥠᦵ MATLAB ڣඳؐߚࡆϢ䖍㓬Ẕ⌟ߑ᭄ⱘՓ⫼ᮍ⊩˗ 3ˊњ㾷䖍㓬Ẕ⌟ⱘㅫ⊩⫼䗨ˈ↨䕗 SobelǃPrewittǃCanny ㄝㅫᄤ䖍㓬Ẕ⌟ⱘᏂ ᓖDŽ