当前位置:文档之家› 图像处理 matlab函数 膨胀 腐蚀 开 闭运算

图像处理 matlab函数 膨胀 腐蚀 开 闭运算

图像处理 matlab函数 膨胀 腐蚀 开 闭运算
图像处理 matlab函数 膨胀 腐蚀 开 闭运算

img_gray=imread('rice.png');

img_erzhi=imread('testpat1.png');

imshow(img_gray)

figure,imshow(img_erzhi)

[m n]=size(img_gray);

img_gray_fu=zeros(m,n);

img_gray_peng=zeros(m,n);

img_erzhi_fu=zeros(m,n);

img_erzhi_peng=zeros(m,n);

for i=2:m-1

for j=2:n-1

img_gray_fu(i,j)=min(min(img_gray(i-1:i+1,j-1:j+1)));

img_gray_peng(i,j)=max(max(img_gray(i-1:i+1,j-1:j+1)));

end

end

figure,imshow(uint8(img_gray_fu));

figure,imshow(uint8(img_gray_peng));

for i=2:m-1

for j=2:n-1

img_erzhi_fu(i,j)=min(min(img_erzhi(i-1:i+1,j-1:j+1)));

img_erzhi_peng(i,j)=max(max(img_erzhi(i-1:i+1,j-1:j+1)));

end

end

figure,imshow(uint8(img_erzhi_fu));

figure,imshow(uint8(img_erzhi_peng));

I=imread('testpat1.png'); J=im2bw(I);

SE=strel('square',10);

A=imopen(J,SE); figure,imshow(A);

I=imread('testpat1.png'); J=im2bw(I);

SE=strel('square',10);

A=imclose(J,SE); figure,imshow(A);

matlab图像处理的几个实例

Matlab图像处理的几个实例(初学者用) 1.图像的基本信息及其加减乘除 clear,clc; P=imread('yjx.jpg'); whos P Q=imread('dt.jpg'); P=im2double(P); Q=im2double(Q); gg1=im2bw(P,0.3); gg2=im2bw(P,0.5); gg3=im2bw(P,0.8); K=imadd(gg1,gg2); L=imsubtract(gg2,gg3); cf=immultiply(P,Q); sf=imdivide(Q,P); subplot(421),imshow(P),title('郁金香原图'); subplot(422),imshow(gg1),title('0.3'); subplot(423),imshow(gg2),title('0.5'); subplot(424),imshow(gg3),title('0.8'); subplot(425),imshow(K),title('0.3+0.5'); subplot(426),imshow(L),title('0.5-0.3'); subplot(427),imshow(cf),title('P*Q'); subplot(428),imshow(sf),title('P/Q'); 2.图像缩放 clear,clc; I=imread('dt.jpg'); A=imresize(I,0.1,'nearest'); B=imresize(I,0.4,'bilinear'); C=imresize(I,0.7,'bicubic'); D=imresize(I,[100,200]); F=imresize(I,[400,100]); figure subplot(321),imshow(I),title('原图'); subplot(322),imshow(A),title('最邻近插值'); subplot(323),imshow(B),title('双线性插值'); subplot(324),imshow(C),title('二次立方插值'); subplot(325),imshow(D),title('水平缩放与垂直缩放比例为2:1'); subplot(326),imshow(F),title('水平缩放与垂直缩放比例为1:4');

北航数图实验报告四图像腐蚀和膨胀

北航数图实验报告四图像腐蚀和膨 胀 部门: xxx 时间: xxx 整理范文,仅供参考,可下载自行编辑

北京航空航天大学 数字图像处理实验报告 实验四:图像分割处理 学院 专业方向 班级 学号 学生姓名 指导教师 实验四图像分割处理实验 1.实验目的 <1)了解图像分割的基本原理,并利用图像分割算法进行图像分割处理; <2)掌握数学形态学的基本运算。 2.实验内容 <1)利用类间方差阈值算法实现图像的分割处理; <2)利用形态学处理进行处理结果修正。 3. 实验要求

<1)实验用图: <2)对输入图像进行平滑处理,以减小噪声对分割处理的影响; <3)利用类间方差阈值算法对滤波处理后图像进行分割处理,获取分割图像; <4)利用数学形态学中的腐蚀和膨胀运算处理,剔除分割处理结果中的一些细小的残余误分割点,在进行腐蚀和膨胀运算时可采用半径为r的圆形结构元素,注意比较选取不同r值时的处理结果。b5E2RGbCAP 四、实验代码 function STshiyan4_OpeningFcn(hObject, eventdata, handles, varargin>p1EanqFDPw I=imread('4.bmp'>。 I=rgb2gray(I>。 subplot(3,3,1>。

imshow(I>。 title('原图像'>。 IM=medfilt2(I>。%中值滤波 subplot(3,3,2>。 imshow(IM>。 title('中值滤波后图像'>。 function pushbutton1_Callback(hObject, eventdata, handles>DXDiTa9E3d I1=imread('4.bmp'>。 I1=rgb2gray(I1>。 T=Otsu(I1>。 IM1=medfilt2(I1>。 s=size(IM1>。 for m=1:s(1> for n=1:s(2> if IM1(m,n>>=T IM1(m,n>=255。 else IM1(m,n>=0。 end end end

基于MATLAB图像处理报告

基于M A T L A B图像处理报告一、设计题目 图片叠加。 二、设计要求 将一幅礼花图片和一幅夜景图片做叠加运算,使达到烟花夜景的美图效果。 三、设计方案 、设计思路 利用matlab强大的图像处理功能,通过编写程序,实现对两幅图片的像素进行线性运算,利用灰度变换的算法使图片达到预期的效果。 、软件介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB 也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。

图像处理实例(含Matlab代码)

信号与系统实验报告——图像处理 学院:信息科学与工程学院 专业:2014级通信工程 组长:** 组员:** 2017.01.02

目录 目录 (2) 实验一图像一的细胞计数 (3) 一、实验内容及步骤 (3) 二、Matlab程序代码 (3) 三、数据及结果 (4) 实验二图像二的图形结构提取 (5) 一、实验内容及步骤 (5) 二、Matlab程序代码 (5) 三、数据及结果 (6) 实验三图像三的图形结构提取 (7) 一、实验内容及步骤 (7) 二、Matlab程序代码 (7) 三、数据及结果 (8) 实验四图像四的傅里叶变化及巴特沃斯低通滤波 (9) 一、实验内容及步骤 (9) 二、Matlab程序代码 (9) 三、数据及结果 (10) 实验五图像五的空间域滤波与频域滤波 (11) 一、实验内容及步骤 (11) 二、Matlab程序代码 (11) 三、数据及结果 (12)

实验一图像一的细胞计数 一、实验内容及步骤 将该图形进行一系列处理,计算得到途中清晰可见细胞的个数。 首先,由于原图为RGB三色图像处理起来较为麻烦,所以转为灰度图,再进行二值化化为黑白图像,得到二值化图像之后进行中值滤波得到细胞分布的初步图像,为了方便计数对图像取反,这时进行一次计数,发现得到的个数远远多于实际个数,这时在进行一次中值滤波,去掉一些不清晰的像素点,剩下的应该为较为清晰的细胞个数,再次计数得到大致结果。 二、Matlab程序代码 clear;close all; Image = imread('1.jpg'); figure,imshow(Image),title('原图'); Image=rgb2gray(Image); figure,imshow(Image),title('灰度图'); Theshold = graythresh(Image); Image_BW = im2bw(Image,Theshold); Reverse_Image_BW22=~Image_BW; figure,imshow(Image_BW),title('二值化图像'); Image_BW_medfilt= medfilt2(Image_BW,[3 3]); figure,imshow(Image_BW_medfilt),title('中值滤波后的二值化图像'); Reverse_Image_BW = ~Image_BW_medfilt; figure,imshow(Reverse_Image_BW),title('图象取反'); Image_BW_medfilt2= medfilt2(Reverse_Image_BW,[20 20]); figure,imshow(Image_BW_medfilt2),title('第二次中值滤波的二值化图像'); [Label, Number]=bwlabel(Image_BW_medfilt,8);Number [Label, Number]=bwlabel(Image_BW_medfilt2,8);Number

MATLAB膨胀腐蚀(开,闭运算)源代码

clear,clc; h=imread('ceshi2.bmp'); i=im2bw(h); i1i=187; i1j=192; for ai=181:193 for aj=186:198 if(sqrt(double(ai-i1i)^2+double(aj-i1j)^2)<=5) i(ai,aj)=1;%定义圆形结构元素 end end end figure,imshow(i); i1=i; for i1i=6:205%用B腐蚀A for i1j=6:205 flag=0; if(i1i>=181&&i1i<=193&&i1j>=186&&i1j<=198) continue; else if(i(i1i,i1j)==1) for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i1(ai,aj)==0&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=0; flag=1; break; end end if(flag==1) break; end end end end end end figure,imshow(i); %在上面C的图像上用B进行膨胀 i2=i; for i1i=6:205%用B膨胀C for i1j=6:205 flag=0; if(i1i>=175&&i1i<=199&&i1j>=180&&i1j<=204)

continue; else for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i2(ai,aj)==1&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=1; flag=1; break; end end if(flag==1) break; end end end end end figure,imshow(i); %在上面D的图像上用B进行膨胀 i2=i; for i1i=6:205%用B膨胀D for i1j=6:205 flag=0; if(i1i>=175&&i1i<=199&&i1j>=180&&i1j<=204) continue; else for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i2(ai,aj)==1&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=1; flag=1; break; end end if(flag==1) break; end end end end end figure,imshow(i); %在上面E的图像上用B进行腐蚀 i1=i;

数字图像处理-图像的腐蚀要点

1设计目的 1掌握图像腐蚀对图像的提取与识别的重要性,提高分析问题解决问题的能力,较深入地理解数字图像处理的基本概念、基础理论以及解决问题的基本思想方法 2熟悉数字图像处理的基本概念、原理、和方法,锻炼初步综合利用所学知识深入研究有关信息领域问题的能力,并未以后在此方向上的深入研究奠定基础。 3熟悉掌握一门计算机语言可以进行数字图像的应用与处理设计。

1熟悉掌握matlab仿真的软件的应用平台及使用方法。2理解图像腐蚀的原理。 3设计合理的程序,能实现图像的腐蚀。

3.1关于图像腐蚀 形态学运算只针对二值图像(二进制图像),并依据数学形态学(Mathermatical Morphogy)集合论方法发展起来的图像处理方法,起源于岩相对岩石结构的定量描述工作,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析方法和理论。数学形态学是图像处理和模式识领域的新方法,其基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。优势有以下几点:有效滤除噪声,保留图像中原有信息,算法易于用并行处理方法有效实现(包括硬件实现),基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点少。 二值图像中的一种主要处理是对所提取的目标图形进行形态分析。而形态处理中最基本的是腐蚀与膨胀。腐蚀处理的作用是将目标图形收缩。运算效果取决于结构元素大小内容以及逻辑运算性质。 结构元素是指具有某种确定形状的基本结构元素,例如,一定大小的矩形,圆或者菱形等。 腐蚀处理可以表示成用结构元素对图像进行探测,找出图像中可以放下该结构元素的区域。腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的目标物。如果两目标物间有细小的连通,可以选取足够大的结构元素,将细小连通腐蚀掉[1]。 3.2腐蚀的算法 用3x3的结构元素,扫描图像的每一个像素; 用结构元素与其覆盖的二值图像做“与”操作; 如果都为1,结果图像的该像素为1。否则为0。 结果:使二值图像减小一圈。 把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的a点组成的集合称做X被B腐蚀(Erosion)的结果。用公式表示为:E(X)={a| Ba X}=X B,如图1.1所示。

基于MATLAB的图像处理

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于MATLAB的图像滤波设计 初始条件:1.MATLAB软件 2.滤波器处理相关函数 要求完成的主要任务: (1)读入图像并分别加入高斯噪声、椒盐噪声和乘性噪声,并比较结果。 (2)设计巴特沃斯低通滤波对图像进行低通滤波处理,显示结果。 (3)设计高斯高通滤波器对图像进行处理,显示结果。 (4)采用维纳滤波和中值滤波对图像进行处理,显示结果 参考书: 1.《信号与系统》第一版刘泉江雪梅主编高等教育出版社 2.《数字图像处理》MATLAB版冈萨雷斯主编电子工业出版社 时间安排: 第15周:任务安排、分组 第16周:理论设计及仿真 第18周:撰写设计报告及答辩 指导教师签名:年月日系主任(或责任教师)签名:年月日

摘要 (3) 1.MATLAB简介 (5) 1.1 MATLAB的概况 (5) 1.2 MATLAB产生的历史背景 (5) 2.编程及运行结果 (7) 2.1常见基本运算 (7) 2.1.1极限的计算 (7) 2.1.2微分的计算 (7) 2.1.3积分的计算 (8) 2.1.4级数的计算 (9) 2.1.5求解代数方程 (10) 2.1.6求解常微分方程 (10) 2.2 矩阵基本计算 (11) 2.2.1矩阵的最大值 (11) 2.2.2矩阵的最小值 (11) 2.2.3矩阵的均值 (12) 2.2.4矩阵的方差 (13) 2.2.5矩阵的转置 (13) 2.2.6矩阵的逆 (14) 2.2.7矩阵的行列式 (15) 2.2.8矩阵的特征值计算 (15) 2.2.9矩阵的相乘 (16) 2.2.10矩阵的右除和左除 (17) 2.2.11矩阵的幂运算 (18) 2.3 多项式基本计算 (18) 2.3.1多项式加减运算 (18) 2.3.2多项式乘除运算 (19) 2.3.3多项式求导 (20) 2.3.4求根和求值运算 (20) 2.3.5多项式的部分分式展开 (21) 2.3.6多项式的拟合 (22) 2.3.7插值运算 (23) 3.基于MATLAB的图像滤波设计 (25) 3.1读入图像并分别加入高斯噪声、椒盐噪声和乘性噪声,并比较结果 (25) 3.2设计巴特沃斯低通滤波对图像进行低通滤波处理,显示结果 (29) 3.2.1叠加椒盐噪声的巴特沃斯低通滤波 (29) 3.2.2叠加高斯噪声的巴特沃斯低通滤波 (31) 3.2.3叠加乘性噪声的巴特沃斯低通滤波 (32) 3.3用MATLAB实现高斯高通滤波器对图像的处理 (33) 3.4维纳滤波和中值滤波对图像进行处理 (35) 4.总结 (38) 参考文献 (39)

MATLAB中图像函数大全 详解及例子

图像处理函数详解——strel 功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。 用法:SE=strel(shape,parameters) 创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair' 'diamond' 'periodicline' 'disk' 'rectangle' 'line' 'square' 'octagon 参数parameters一般控制SE的大小。 例子: se1=strel('square',6) %创建6*6的正方形 se2=strel('line',10,45) %创建直线长度10,角度45 se3=strel('disk',15) %创建圆盘半径15 se4=strel('ball',15,5) %创建椭圆体,半径15,高度5

图像处理函数详解——roipoly 功能:用于选择图像中的多边形区域。 用法:BW=roipoly(I,c,r) BW=roipoly(I) BW=roipoly(x,y,I,xi,yi) [BW,xi,yi]=roipoly(...) [x,y,BW,xi,yi]=roipoly(...) BW=roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0. BW=roipoly(I)表示建立交互式的处理界面。 BW=roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。 例子:I=imread('eight.tif'); c=[222272300270221194]; r=[21217512112175]; BW=roipoly(I,c,r); imshow(I)

图像的腐蚀和膨胀

图像的腐蚀和膨胀 研究背景和意义 依据数学形态学集合论方法发展起来的图像处理方法,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析和理论。数学形态学是图像处理和模式识别领域的新方法,其基本的思想是:用具有一定形态的结构元素去度量和提取图像中的对应形状,已达到图像分析和识别的目的。 优势有一下几点:有效滤除噪声,保留图像中原有信息,算法很容易用并行处理方法有效实现,基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点很少。 二.原理 特殊领域运算形式——结构元素,在每个像素位置上与二值图像对应的区域进行特定的逻辑运算。运算结果是输出图像的相应像素。运算效果取决于结构元素大小、内容以及逻辑运算性质。 结构元素:膨胀和腐蚀操作的最基本组成部分,用于测试输出图像,通常要比待处理的图像小的多。二维平面结构元素由一个数值为0或1的矩阵组成。结构元素的原点(锚点)指定了图像中需要处理的像素范围,结构元素中数值为1的点决定结构元素的领域像素在进行膨胀或腐蚀操作时是否需要参与计算。 常见的形态学运算有腐蚀和膨胀两种: 腐蚀:删除对象边缘某些像素。

膨胀:给图像中的对象边缘添加像素。 三.算法及效果图 膨胀算法:用3X3的结构元素扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作,如果都为0,结果图像的该像素点为0,否则为1。膨胀算法的效果是使二值图像扩大一圈。 腐蚀的算法:用3X3的结构元素,扫描图像的每一个像素点,用结构元素与其覆盖的二值图像做“与”操作,如果结果都为1,结果图像的该像素点为1,否则为0。 膨胀算法的结果:是二值图像减少一圈。 四.组合使用效果 先腐蚀后膨胀的过程:利用它可以消除小物体,在纤细点处分离物体,平滑较大物体边界,但同时并不会明显改变原来物体的面积。 先膨胀后腐蚀的过程:利用它可以填充物体内细小空洞,连接临近物体、平滑其边界,但同时并不会明显改变原来物体的面积。 通常由于噪声的影响,图像在阈值化后所得到的边界通常都很不平滑,物体区域具有一些噪声孔,而背景区域上散布着一些小的噪声物体,连续的开和闭运算可以有效的改善这种情况。而有时,我们需要经过多次腐蚀,然后再加上相同次数的膨胀,才能产生比较好的处理效果。可见图像的腐蚀与膨胀相结合有时可以使图像有较理想的处理效果。 图像处理分为多种,对于不同的图像腐蚀和膨胀的定义不同。 1. 形态学图像处理是在图像中移动一个结构元素,然后将结构元素

C 图像的膨胀和腐蚀

C++图像的膨胀和腐蚀 二值图像是一种简单的图像格式,它只有两个灰度级,即"0"表示黑色的像素点,"255"表示白色的像素点,至于如何从一幅普通的图像获得二值图像,请参考我近期在天极网上发表的《Visual C++编程实现图像的分割》一文。二值图像处理在图像处理领域占据很重要的位置,在具体的图像处理应用系统中,往往需要对于获得的二值图像再进一步进行处理,以有利于后期的识别工作。二值图像处理运算是从数学形态学下的集合论方法发展起来的,尽管它的基本运算很简单,但是却可以产生复杂的效果。常用的二值图像处理操作有许多方法,如腐蚀、膨胀、细化、开运算和闭运算等等。本文对这些内容作些研究探讨, 希望对爱好图像处理的朋友有所帮助。一、腐蚀和膨胀形态学是一门新兴科学,它的用途主要是获取物体拓扑和结果信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。它在图像处理中的应用主要是: 1.利用形态学的基本运算,对图像进行观察和处理,从而达到改善图像质量的目的; 2.描述和定义图像的各种几何参数和特征,如面积,周长,连通度,颗粒度,骨架和方向性。限于篇幅,我们只介绍简单二值图像的形态学运算,对于灰度图像的形态学运算,有兴趣的读者可以看有关的参考书。

二值图像基本的形态学运算是腐蚀和膨胀,简单的腐蚀是消除物体的所有边界点的一种过程,其结果是使剩下的物体沿其周边比原物体小一个像素的面积。如果物体是圆的,它的直径在每次腐蚀后将减少两个像素,如果物体在某一点处任意方向上连通的像素小于三个,那么该物体经过一次腐蚀后将在该点处分裂为二个物体。简单的膨胀运算是将与某物体接触的所有背景点合并到该物体中的过程。过程的结果是使物体的面积增大了相应数量的点,如果物体是圆的,它的直径在每次膨胀后将增大两个像素。如果两个物体在某一点的任意方向相隔少于三个像素,它们将在该点连通起来。 下面给出具体的实现腐蚀和膨胀的函数代码: ////////////////////////////////二值图像腐蚀操作函数 BOOL ImageErosion(BYTE *pData,int Width,int Height) {//pData为图像数据的指针,Width和Height为图像的宽和高; BYTE* pData1; int m,n,i,j,sum,k,sum1;

腐蚀膨胀算法详细解释

形态学运算中腐蚀,膨胀,开运算和闭运算(针对二值图而言) 6.1 腐蚀 腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。 腐蚀的算法: 用3x3的结构元素,扫描图像的每一个像素 用结构元素与其覆盖的二值图像做“与”操作 如果都为1,结果图像的该像素为1。否则为0。 结果:使二值图像减小一圈 把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的 a点组成的集合称做X被B腐蚀(Erosion)的结果。用公式表示为:E(X)={a| Ba X}=X B,如图6.8所示。 图6.8 腐蚀的示意图 图6.8中X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴影部分的点a,Ba 包含于X,所以X被B腐蚀的结果就是那个阴影部分。阴影部分在X的范围之内,且比X小,就象X被剥掉了一层似的,这就是为什么叫腐蚀的原因。 值得注意的是,上面的B是对称的,即B的对称集Bv=B,所以X被B腐蚀的结果和X被Bv腐蚀的结果是一样的。如果B不是对称的,让我们看看图6.9,就会发现X被B腐蚀的结果和X被Bv腐蚀的结果不同。

图6.9 结构元素非对称时,腐蚀的结果不同 图6.8和图6.9都是示意图,让我们来看看实际上是怎样进行腐蚀运算的。 在图6.10中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B,那个标有origin的点是中心点,即当前处理元素的位置,我们在介绍模板操作时也有过类似的概念。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉;右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。 图6.10 腐蚀运算 图6.11为原图,图6.12为腐蚀后的结果图,能够很明显地看出腐蚀的效果。 图6.11 原图

MATLAB数字图像的腐蚀、填充、细化与粗化

《数字图像处理》 实验报告 姓名学号专业电子科学与工程学院实验5 一、实验目的 本次实验的处理对象是二值图像,关于二值图像的处理运算主要包括腐蚀和膨胀。它们是其他处理过程的主要运算环节。开闭操作通过腐蚀和膨胀的不同顺序组合,能够使图像平滑,开闭操作再组合能够成噪声滤波器。形态学中的击中击不中变换也应用了腐蚀的运算,用于判断图像中能否找到目标结构,这在图像细化中也得到了应用。 本次实验主要实现: 1.图像的边缘提取; 2.在边缘提取的基础上实现区域填充; 3.在区域填充的基础上实现图像细化; 4.在图像细化的基础上实现图像粗化。 在Matlab软件的自带函数库中其实本身就包含有以上处理过程的函数,为了深入理解每种处理过程的原理,本次实验所有运算都自行编写实现。 二、核心代码及运行后截图 主函数: %%读取图像 clear;clc; I=imread('onepiece.jpg'); I=im2bw(I);%转换为二值图像 [m,n]=size(I); %%边界提取 f=im2bw([0,1,0;1,1,1;0,1,0]);%腐蚀用的结构元素 F=fs(I,f); BW=im2bw(I-F);%用原图减去腐蚀获得边缘 figure;imshow(I);title('原图'); figure;imshow(F);title('腐蚀图像'); figure;imshow(BW);title('边界');

在上面的运行效果图上看来,由于原图选择的原因,周围一圈白线有一定宽度但不足够粗,大概只有2~3个像素宽度而腐蚀用元素大小为3×3,这导致腐蚀后图像留下的白线看起来残缺不全,用原图减去腐蚀后得到的边缘图像也在白线处有“粘在一块”的现象。只要使用更高一些分辨率的图片即可避免这样的情况。但出于后续试验的运行速度考虑,本实验就使用此图(300×300)。观察图像其他地方,有足够的像素宽度被腐蚀,由此提取的边缘也很清晰。 %%区域填充 I1=fillbw(BW,40,40);%fillbw函数实现指定坐标填充边缘内部,详见主函数后的各子函数 I1=I1|fillbw(BW,40,260);%为避免不必要的计算量,每次填充迭代次数为70 I1=I1|fillbw(BW,100,150);%逐次在图像中选择需填充区域中的起始点以完成填充 I1=I1|fillbw(BW,100,160); I1=I1|fillbw(BW,136,86); I1=I1|fillbw(BW,132,212); I1=I1|fillbw(BW,147,120); I1=I1|fillbw(BW,157,214); I1=I1|fillbw(BW,210,171); I1=I1|fillbw(BW,206,109); I1=I1|fillbw(BW,233,129); I1=I1|fillbw(BW,234,140); I1=I1|fillbw(BW,237,153); I1=I1|fillbw(BW,234,167); I1=I1|fillbw(BW,231,178); I1=I1|fillbw(BW,248,125); I1=I1|fillbw(BW,252,142); I1=I1|fillbw(BW,252,162);

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像imread Syntax: A = imread(, fmt) :指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到所制定的文件,会尝试查找一个名为的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含RGB 真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow() himage = imshow(...)

●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像素在图像中出现的概率。 图像的灰度直方图:是一个离散函数,表示图像每一灰度级与该灰度级出现概率的对应关系。 图像的灰度直方图运算: imhist()函数,其横坐标表示像素的灰度级别,纵坐标为像素点的个数。 ●Imhist函数=Display histogram of image data显示灰度直方图的函数 ●Syntax: ①imhist(I) % I为要计算的灰度直方图图像 ②imhist(I, n) % n指定的灰度级的数目,表示所有灰度级均匀分布在n个小区间内。 ③imhist(X, map) ④[counts,x] = imhist(...) %counts直方图数据向量。counts(i)第i个灰度区间中的像素数目。x是保存了对应的灰度小区间的向量。 注意:若调用时不接受这个函数的返回值,则直接显示直方图;在得这些返回数据之后,也可以使用stem(x,counts)手绘直方图。 ●例1:显示某一图像的灰度直方图

图像增强及MATLAB实现

《数字图像处理》课程设计 课设题目:图像增强与MATLAB实现学校学院:华东交通大学理学院 学生班级:13级信息计算(2)班学生:超 学生学号:20130810010216 指导老师:自柱

图像增强与MATLAB实现 摘要 数字图像处理是指将图像信号转换成数字格式并利用计算机对其进行处理的过程。图像增强是数字图像处理的过程中经常采用的一种方法,它对提高图像质量起着重要的作用。本文先对图像增强的原理进行概述,然后对图像增强的方法分类并给出直方图增强、对比度增强、平滑和锐化等几种常用的增强方法的理论基础,通过Matlab实验得出的实际处理效果来对比各种算法的优缺点,讨论不同的增强算法的技术要点,并对其图像增强方法进行性能评价。 关键字:图像;图像增强;算法

目录 一、MATLAB的简介 (1) 1.1MATLAB主要功能 (1) 二、MATLAB的主要功能 (1) 2.1数字增强技术概述 (1) 2.2数字图像的表示 (2)

三、直方图的均衡化 (2) 3.1图像的灰度 (2) 3.2灰度直方图 (2) 3.3直方图均衡化 (3) 四、图像二值化 (5) 4.1图像二值化 (5) 五、对比度增强 (7) 5.1对比度增强 (7) 5.2灰度调整 (8) 5.3对数变换 (9) 六、滤波 (10) 6.1平滑滤波 (10) 6.2线性平滑滤波程序: (11) 6.3非线性滤波 (12) 七、锐化 (18) 八、参考文献 (19) 九、自我评价 (20)

一、Matlab的简介 1.1 MATLAB主要功能 MATLAB是建立在向量、数组和矩阵基础上的一种分析和仿真工具软件包,包含各种能够进行常规运算的“工具箱”,如常用的矩阵代数运算、数组运算、方程求根、优化计算及函数求导积分符号运算等;同时还提供了编程计算的编程特性,通过编程可以解决一些复杂的工程问题;也可绘制二维、三维图形,输出结果可视化。目前,已成为工程领域中较常用的软件工具包之一。 二、MATLAB的主要功能 2.1数字增强技术概述 图像增强是按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些信息使得图像更加实用。图像增强技术主要包含直方图修改处理、图像平滑处理、图像尖锐化处理等。 图像增强技术主要包括:直方图修改处理,图像平滑处理,图像尖锐化处理,彩色图像处理。从纯技术上讲主要有两类:频域处理法和空域处理法。 频域处理法主要是卷积定理,采用修改图像傅立叶变换的方法实现对图像的增强处理技术;空域处理法:是直接对图像中的像素进行处理,基本上是以灰度映射变换为基础的。

MATLAB课程设计报告图像处理

一.课程设计相关知识综述...................................................................... 1.1 研究目的及意义 (3) 1.2 数字图像处理研究的内容........................................................... 1.3 MATLAB 软件的介绍.................................................................. 1.3.1 MATLAB 语言的特点......................................................... 1.3.2 MATLAB 图像文件格式.................................................... 1.3.3 MATLAB 图像处理工具箱简介........................................ 1.3.4 MATLAB 中的图像类型.................................................... 1.3.5 MATLAB 的主要应用........................................................ 1.4 函数介绍........................................................................................ 二.课程设计内容和要求........................................................................... 2.1 主要研究内容................................................................................ 2.2 具体要求....................................................................................... 2.3 预期达到的目标........................................................................... 三.设计过程............................................................................................... 3.1 设计方案及步骤............................................................................ 3.2 程序清单及注释........................................................................... 3.3 实验结果........................................................................................ 四.团队情况................................................................................................ 五.总结....................................................................................................... 六.参考文献............................................................................................... 一.课程设计相关知识综述. 1.1研究目的及意义

图像处理matlab程序实例

程序实例 1旋转: x=imread('d:\MATLAB7\work\flower.jpg'); y=imrotate(x,200,'bilinear','crop'); subplot(1,2,1); imshow(x); subplot(1,2,2); imshow(y) 2.图像的rgb clear [x,map]=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shh1.jpg');y=x(90:95,90:95);imshow(y)R=x(90:95,90:95,1);G=x(90:95,90:95,2);B=x(90:95,90:95,3);R,G,B 3.加法运算clear I=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shh3.jpg');J=imnoise(I,'gaussian',0,0.02);%向图片加入高斯噪声subplot(1,2,1),imshow(I);%显示图片subplot(1,2,2),imshow(J);K=zeros(242,308);%产生全零的矩阵,大小与图片的大小一样for i=1:100%循环100加入噪声J=imnoise(I,'gaussian',0,0.02);J1=im2double(J);K=K+J1;end K=K/100; figure,imshow(K);save

4.减法 clear I=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao.jpg'); J=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao1.jpg'); K=imsubtract(I,J);%实现两幅图相减 K1=255-K;%将图片求反显示 figure;imshow(I); title('有噪声的图'); figure;imshow(J); title('原图'); figure;imshow(K1); title('提取的噪声'); save 5.图像的乘法 H=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao.jpg'); I=immultiply(H,1.2);将此图片乘以1.2 J=immultiply(H,2); subplot(1,3,1),imshow(H); title('原图'); subplot(1,3,2),imshow(I); title('·放大1.2'); subplot(1,3,3),imshow(J); title('放大2倍'); 6除法运算 moon=imread('moon.tif'); I=double(moon); J=I*0.43+90; K=I*0.1+90; L=I*0.01+90; moon2=uint8(J); moon3=uint8(K); moon4=uint8(L); J=imdivide(moon,moon2); K=imdivide(moon,moon3); L=imdivide(moon,moon4); subplot(2,2,1),imshow(moon); subplot(2,2,2),imshow(J,[]); subplot(2,2,3),imshow(K,[]); subplot(2,2,4),imshow(L,[]);

相关主题
相关文档 最新文档