精华内容
下载资源
问答
  • 1.图像膨胀的Matlab实现:可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素...

    1.图像膨胀的Matlab实现:

    可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,imdilate还可以接受两个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。举个实例如下:

    步骤1,首先创建一个包含矩形对象的二值图像矩阵。

    >> BW=zeros(9,10);

    >> BW(4:6,4:7) =1

    BW =

    0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0

    0 0 0 1 1 1 1 0 0 0

    0 0 0 1 1 1 1 0 0 0

    0 0 0 1 1 1 1 0 0 0

    0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0

    步骤2,使用一个3×3的正方形结构元素对象对创建的图像进行膨胀。

    >> SE=strel('square',3)

    SE =

    Flat STREL object containing 9 neighbors.

    Neighborhood:

    1 1 1

    1 1 1

    1 1 1

    步骤3,将图像BW和结构元素SE传递给imdilate函数。

    >> BW2=imdilate(BW,SE)

    BW2 =

    0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0

    0 0 1 1 1 1 1 1 0 0

    0 0 1 1 1 1 1 1 0 0

    0 0 1 1 1 1 1 1 0 0

    0 0 1 1 1 1 1 1 0 0

    0 0 1 1 1 1 1 1 0 0

    0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0

    步骤4,显示结果。

    >> imshow(BW,'notruesize')

    >> imshow(BW2,'notruesize')

    2.图像腐蚀的Matlab实现:

    可以使用imerode函数进行图像腐蚀。imerode函数需要两个基本输入参数:待处理的输入图像以及结构元素对象。此外,imerode函数还可以接受3个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。M——指定原始图像的行数。

    以下程序示例说明了如何对某一副具体图像进行腐蚀操作,腐蚀前后的效果对比如图末。

    步骤1,读取图像cameraman.tif (该图像是Matlab当前目录下自带的图片)

    >> BW1=imread('cameraman.tif');

    步骤2,创建一个任意形状的结构元素对象

    >> SE=strel('arbitrary',eye(5));

    步骤3,以图像BW1和结构元素SE为参数调用imerode函数进行腐蚀操作。

    >> BW2=imerode(BW1,SE);

    步骤4,显示操作结果

    >> imshow(BW1)

    >> figure,imshow(BW2)

    3.膨胀和腐蚀联合操作(图像开运算操作):

    下面以图像开启为例,说明如何综合使用imdilate和imerode这两个函数,实现图像处理操作。

    步骤1,创建结构元素:

    >> clear;close all

    >> SE = strel('rectangle',[40 30]); %注意:结构元素必须具有适当的大小,既可以删电流线又可以删除矩形.

    步骤2,使用结构元素腐蚀图像: %将会删除所有直线,但也会缩减矩形

    >> BW1=imread('circbw.tif');

    >> BW2=imerode(BW1,SE);

    >> imshow(BW2)

    >> figure,imshow(BW1)

    步骤3,恢复矩形为原有大小,使用相同的结构元素对腐蚀过的图像进行膨胀.

    >> BW3=imdilate(BW2,SE);

    >> figure,imshow(BW3)

    4.基于膨胀与腐蚀的形态操作——骨架化和边缘检测

    (1)骨架化:

    某些应用中,针对一副图像,希望对图像中所有对象简化为线条,但不修改图像的基本结构,保留图像基本轮廓,这个过程就是所谓的骨架化。提供了专门的函数bwmorph,可以实现骨架化操作。

    >> clear;close all

    >> BW1=imread('circbw.tif');

    >> BW2=bwmorph(BW1,'skel',Inf);

    >> imshow(BW1)

    >> figure,imshow(BW2)

    (2)边缘检测

    对于一副灰度二进制图像,如果图像像素值为1,则该像素的状态为ON,如果其像素值为0,则该像素的状态为OFF。在一副图像中,如果图像某个像素满足以下两个条件:

    1.该像素状态为ON,

    2.该像素邻域中有一个或多个像素状态为OFF。

    则认为该像素为边缘像素。

    Matlab中提供了专门的函数bwperim,可以用于判断一副二进制图像中的哪些像素为边缘像素。

    以下程序代码示例就是利用bwperim函数,对图像circbw.tif进行边缘检测,其边缘像素检测效果如尾图。

    >> clear;close all

    >> BW1=imread('circbw.tif');

    >> BW2=bwperim(BW1);

    >> imshow(BW1)

    >> figure,imshow(BW2)

    基于腐蚀和膨胀的形态操作函数如下:

    bwhitmiss 图像逻辑"与"操作,该函数使用一个结构元素对图像进行腐蚀操作后,再使用第二个结构元素对图像进行腐蚀操作

    imbothat 从原始图像中减去经过形态关闭后的图像,该函数可用来寻找图像中的灰度槽

    imclose 闭合操作.首先对图像进行膨胀,然后再对膨胀后的图像进行腐蚀,两个操作使用同样的结构元素

    imopen 开启操作,首先对图像进行腐蚀,然后再对腐蚀后的图像进行膨胀,两个操作使用同样的结构元素

    imtophat 从原始图像中减去形态开启后的图像,可以用来增强图像的对比度

    基于MATLAB的腐蚀膨胀算法实现

    本篇文章要分享的是基于MATLAB的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,腐蚀在二值图像的基础上做“收缩”或“细化”操作,膨胀在二值图像的基础上做“加长”或“变粗”的操作. 什么是二值图像 ...

    基于FPGA的腐蚀膨胀算法实现

    本篇文章我要写的是基于的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,,腐蚀在二值图像的基础上做"收缩"或"细化"操作,膨胀在二值图像的基础上做" ...

    opencv中的图像形态学——腐蚀膨胀

    腐蚀膨胀是图像形态学比较常见的处理,腐蚀一般可以用来消除噪点,分割出独立的图像元素等. 一般腐蚀操作对二值图进行处理,腐蚀操作如下图,中心位置的像素点是否与周围领域的像素点颜色一样(即是否是白色点,即 ...

    OpenCV 腐蚀膨胀操作

    利用腐蚀膨胀操作实现对椭圆周围线条的消除,椭圆的大小不变 代码如下: #include "cv.h" #include "highgui.h" int main ...

    OpenCV计算机视觉学习(5)——形态学处理(腐蚀膨胀,开闭运算,礼帽黑帽,边缘检测)

    如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 形态 ...

    数学软件 之 基于MATLAB的DFP算法

    DFP算法是本科数学系中最优化方法的知识,也是无约束最优化方法中非常重要的两个拟Newton算法之一,上一周写了一周的数学软件课程论文,姑且将DFP算法的实现细节贴出来分享给学弟学妹参考吧,由于博客不 ...

    C#中调用Matlab人工神经网络算法实现手写数字识别

    手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化  投影  矩阵  目标定位  Matlab 手写数字图像识别简介: 手写 ...

    matlab实现分水岭算法处理图像分割

    此程序为优化后的分水岭算法,避免了图像过分割 I= imread('D:\Images\pic_loc\1870405130305041503.jpg'); imshow(I); h=fspecial ...

    matlab实现感知机算法--统计学习小灶

    clear all; clc; %% %算法 %输入:训练数据集T = {(x1,y1),(x2,y2),...,(xn,yn)};学习率η %输出:w,b;感知机模型f(x) = sign(w*x+ ...

    随机推荐

    从Eclipse迁移到Android Studio碰到的问题记录

    背景: 1. 一直在做.NET的开发,工作之余,学习了一下Android开发,写了一些Demo,当时用的Eclipse开发工具:这两天,刚好项目不是很忙,就打算把之前写的Demo,迁移到Android ...

    mysql客户端导入sql文件命令

    mysql -h localhost -u root -p dbname < filename

    Java 7 中的Switch 谈 Java版本更新和反编译知识

    Java 7 中的Switch 谈 Java版本更新和反编译知识          学习编程,享受生活,大家好,我是追寻梦的飞飞.今天主要讲述的是Java7中的更新Switch实现内部原理和JAD反编 ...

    EEPlat 的数据层模式

    EEPlat 的数据库底层架构能够同一时候支持多种数据库的集成应用.同一时候能够支持分布式数据库的集成应用.业务对象通过指定数据源与对应的数据库通过数据源层进行数据交互,数据源层通过数据库种类.自己主 ...

    Haystack

    什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh,  ...

    Timus 1132 Square Root&lpar;二次剩余)

    http://acm.timus.ru/problem.aspx?space=1&num=1132 题意: 求 x^2 ≡ n mod p  p是质数 的 解 本题中n>=1 特判p=2 ...

    java栈的实现复习

    栈是一种线性表,仅限在一端进行插入和删除操作,特点是先进后出. 由于栈是一种线性结构,首先可以想到用数组来实现,但由于数组初始化后容量就已经确定,如果不添加扩容操作,则会出现栈溢出,同时扩容操作也会降 ...

    Python开发——数据结构【深浅拷贝】

    浅拷贝 # 浅拷贝只copy一层 s = [3,'Lucy',4,[1,2]] s1 = s.copy() 深拷贝 # 深拷贝——克隆一分 import copy s = [3,'Lucy',4,[1 ...

    jctable

    1.jctable 选择单项并删除: var items = Co["MyTable"].GetSelected("HtmlEle"); if (items.l ...

    Python&plus;OpenCV图像处理(二)——打印图片属性、设置图片存储路径、电脑摄像头的调取和显示

    一. 打印图片属性.设置图片存储路径 代码如下: #打印图片的属性.保存图片位置 import cv2 as cv import numpy as np #numpy是一个开源的Python科学计算库 ...

    展开全文
  • 图像处理 膨胀腐蚀 matlab算法实现
  • 本篇文章要分享的是基于MATLAB腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,腐蚀在二值图像的基础上做“收缩”或“细化”操作,膨胀在二值图像的基础上做“加长”或“变粗”的操作。 什么是二值图像呢?把...

    本篇文章要分享的是基于MATLAB的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,腐蚀在二值图像的基础上做“收缩”或“细化”操作,膨胀在二值图像的基础上做“加长”或“变粗”的操作。

      什么是二值图像呢?把一幅图片看做成一个二维的数组,那么二值图像是一个只有0和1的逻辑数组,我们前面Sobel边缘检测后的图像输出边缘效果,设置个阈值,大于阈值输出为1,小于阈值输出为0,最后输出就是一幅二维图像了。

    腐蚀

      腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。用3X3的结构元素,扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作,如果都为1,结果图像的该像素为1。否则为0。结果会使二值图像小一圈。

      有一个形象的比喻来可以说明该运算,用0表示蛀虫,1表示大米。蛀虫腐蚀大米的过程便是腐蚀运算,

    v2-fae8aec3c2738c29068dc0c51c38990d_b.jpg

    腐蚀

    如图所示,对于一个像素矩阵而言,只要有蛀虫(0)的存在,大米(1)就会被腐蚀掉了,即使只存在一个蛀虫(0),但是还是会被蛀虫腐蚀完毕,最后一幅图上面由于没有蛀虫(0)所以大米完好无损。

    关于算法的实现,可以用下式子来表示,即3x3像素的运算:

    P = P11 & P12 & P13 & P21 & P22 & P23 & P31 & P32 & P33

    在FPGA中,为了通过面积去换速度,我们将上式改变如下:                       

    P1 = P11 & P12 & P13

    P2 = P21 & P22 & P23

    P3 = P31 & P32 & P33

    P = P1 & P2 & P3

    MATLAB中可以直接写一个按位或运算。


    膨胀

      膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。用3X3的结构元素,扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作,如果都为0,结果图像的该像素为0,。否则为1。结果使二值图像扩大一圈。

      先腐蚀后膨胀的过程称为开运算。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显的改变其面积。先膨胀后腐蚀的过程称为比运算,用来填充物体内细小空间、连接邻近物体、平滑其边界的同时并不明显改变其面积。

      膨胀算法用最简单的比喻来描述:0表示害虫,1表示青蛙,青蛙吃了害虫表示膨胀运算,我们用3*3像素阵列来解释:

    v2-dea1ffba01bf049cbf70e712bc62cd68_b.jpg

    膨胀

    如图所示,图左只有害虫(0),所以害虫都活着,中间那个图,虽然只有一个害虫,但是还是会被青蛙全部吃掉,最右边的那幅图,都是青蛙,所以青蛙始终是青蛙。

    关于算法的实现,可以用下式子来表示,即3x3像素的运算:

    P = P11 | P12 | P13 | P21 | P22 | P23 | P31 | P32 | P33

    在HDL中,为了通过面积去换速度,我们将上式改变如下:                             

    P1 = P11 | P12 | P13

    P2 = P21 | P22 | P23

    P3 = P31 | P32 | P33

    P = P1 | P2 | P3

    MATLAB中可以直接写一个按位与运算。

    开运算闭运算

      先腐蚀后膨胀叫开运算,开运算的作用是清除图像边缘周围非边缘的细小的点。先膨胀后腐蚀为闭运算,闭运算的作用是清除图像内部的空洞,

      如果我们的目标物体外面有很多无关的小区域,就用开运算去除掉;如果物体内部有很多小黑洞,就用闭运算填充掉。

    MATLAB逻辑运算函数

    bitand(), 对十进制数进行逐位逻辑与运算:先将十进制数转换成二进制数,然后逐位与运算,其运算结果转换为十进制。

    bitor(), 对十进制数进行逐位逻辑或运算:先将十进制数转换成二进制数,然后逐位与运算,其运算结果转换为十进制。

    MATLAB代码实现

    需要了解代码的私聊我,发你。(这就不再复制了)

    处理后结果对比

    为了可以清晰的看到图像边缘的变化,我们把黑色作为背景,白色作为边缘。


    v2-21d008ade544ce5a55e3c68a50c145d7_b.jpg

    Sobel边缘检测后的lena

    v2-352feb115898c62f837c6f392e12d72f_b.jpg

    腐蚀后的lena


    v2-929f1cf9f430902dc17f2106f9712846_b.jpg

    膨胀后的lena


    v2-c6e930ecac632267be000747728e19e4_b.jpg

    先腐蚀后膨胀开运算lena


    v2-826b83ecfba777b11e0bd3d61b9d6fbb_b.jpg

    先膨胀后腐蚀闭运算lena

      从上面两幅图可以看出,腐蚀后的图像边缘明显变细,消除了更多假边缘,在腐蚀基础上使用膨胀算法的lena将腐蚀后的边缘扩大、加粗,这样看起来更清楚。

    展开全文
  • Matlab图像处理知识(四) ?... 上述程序主要是采用了 bwlabel 和 beselect 函数,虽然没有直接使用 Matlab 的形态学操作的膨胀、腐蚀函数,但其实质过程和达到的效果是遵循形 态学操作......C=mdilate(A,...

    Matlab图像处理知识(四) ? 膨胀 ? 腐蚀 ? 开运算闭运算 ? 击中击不中 ? 结合进行图像预处理 膨胀 ? 原理:膨胀是在图像中“增长”或“变粗”的操作。 ? ...

    (gray); 上述程序主要是采用了 bwlabel 和 beselect 函数,虽然没有直接使用 Matlab 的形态学操作的膨胀、腐蚀函数,但其实质过程和达到的效果是遵循形 态学操作......

    C=mdilate(A,se) 用结构元素se来膨胀A 相关函数 膨胀 例:将一幅二值图像做膨胀处理。 A=imr Matlab四形态学图像处理 ? se=strel(shape,参数) ? C=m......

    (a,b); ④闭运算:先膨胀后腐蚀称为闭运算,用 imclose 来实现,如:...

    ? 2. 腐蚀和膨胀(Dilation and Erosion) 二值图像 腐蚀 膨胀 (1) 腐蚀一般意义的腐蚀概念定义为: E =B S={x,y| B} ? 如果S的原点位移到点(x,y),......

    MATLAB 程序;程序组中“work”文件夹中应有待处理 的 图像文件; 2 对于飞机图像 a).对图像进行去噪、增强处理; b)运用全局阀值进行二值化; c)用膨胀腐蚀等......

    它具有腐蚀,膨胀,开运算,闭运算四种基本运算。本文主要探讨形态学图像处理的原理及基于MATLAB软件平台的实施方法。研究表明,利用MATLAB图像处理工具箱中的函数运用形态......

    数字图像处理及MATLAB实现 出版社 理工分社 (1)膨胀(扩张)处理 (2)腐蚀(收缩)处理 图7.33 二值图像的膨胀运算示例 31 数字图像处理及MATLAB实现 出版社 理工......

    4. 用MATLAB语言实现运动补偿的去隔行算 法、GAH去隔行算法、 MADM去隔行算法、AMMC 算法、时域反向投影算法和时间递归算法(选择2-3种 方法)。 ...

    实验6 形态学图像处理 一.实验目的: 1.掌握形态学图像处理的基本算法:膨胀、腐蚀。 2.掌握 MATLAB 函数中用于构建结构元的标准函数。 3.掌握开运算、闭运算。 ...

    孟兆新等提出了基于 边缘检测算法的微小疲劳裂纹图像数据的提取方法n,, 其对微小裂纹进行膨胀和腐蚀运算,实现了对微小裂纹 的边缘检测,搜索标记图像中的空穴并逐级......

    ? ? ? 腐蚀 膨胀 开和闭 击中与否变换 8.3.1 腐蚀运算定义: 假定A和B是X2上的两个集合,把A被B腐蚀定义为: ? ? ? ? ? ? ? Matlab实现: I2=......

    Matlab语句如下: bw2=bwmorph(bw1,'remove',Inf); %去除内点, 提 取图像中各区域轮廓 该函数将膨胀和腐蚀运算进行不同的组合, 去掉没 有与背景像素相邻的前......

    上机实习 1,使用Matlab形态学变换函数:imdilate, imerode, strel, immorph, imsubtract, imopen, imclose 2,在二值化程序基础上,编制基本的形态学运算 (腐蚀和......

    (2,2,4);imshow(erodedBW2);title('5*5 腐蚀图像') 实验六 图像处理实际应用一、实验目的 1、熟悉并掌握 MATLAB 图像处理工具箱的使用; 2、理解并掌握常用......

    结构元素的原点指定了图像中需要处理的 像素范围,结构元素中数值为1的点决定结构元素的领域像素在进行膨胀 或腐蚀操作时是否参与计算。 在MATLAB软件中,结构元素定义......

    针对二值图像,Matlab 提供了丰富的数学形态 图像的数学形态学处理。 学运算函数:腐蚀(Erode) 、膨胀(Dilate)算子、以及在此基础上的 开(Open) 、闭(Close)算子......

    针对二值图像, MATLAB 提供了数学形态学运算 函数;腐蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开 (Open)、闭(Close) 算子、厚化 (Thicken) 、薄化 (......

    MATLAB 图像处理工具箱涵盖了在工程实践中经常遇到的图像处理手段和 算法,如...

    本文用MATLAB的PNN函数 来建立对腐蚀损伤分类的概率神经网络模型。把最大腐 蚀损伤深度作为训练对象,输入和输 出目标矢量都是单行矩阵,这两个矩阵输入到NEWPNN函 ......

    展开全文
  • Matlab 基于腐蚀和膨胀的边缘检测 文/天神 一.课题背景 形态学运算只针对二值图像二进制图像并依据数学形态学Mathermatical Morphogy集合论方法发展起来 的图像处理方法起源于岩相对岩石结构的定量描述工作在数字...
  • MATLAB三维形态学腐蚀膨胀操作代码。做三维形态学操作的时候,没找到MATLAB自带的函数,所以自己写了一个。

    (MATLAB)三维形态学腐蚀膨胀算法(代码)

    by HPC_ZY

    MATLAB三维形态学腐蚀膨胀操作代码。做三维形态学操作的时候,没找到MATLAB自带的函数,所以自己写了一个。

    膨胀

    膨胀比较简单,总之就是原始图像某一位置为1时,把周围的全置为1

    %% 三维膨胀
    function out = dilate3d(in,r)
    
    [R,C,S] = size(in);
    % 生成球形结构元
    [se,n,rx,ry,rz] = strel3d(r);
    
    out = false(R,C,S);
    for i = 1+rx:R-rx
        for j = 1+ry:C-ry
            for k = 1+rz:S-rz
                if in(i,j,k) == 1                
                    for idx = 1:n
                        out(i+se(idx,1),j+se(idx,2),k+se(idx,3)) = 1;
                    end
                end
            end
        end
    end
    
    end
    

    腐蚀

    与膨胀相反,当原始图像某邻域范围内全为1,中心点才能置为1

    %% 三维腐蚀
    function out = erode3d(in,r)
    % 生成球形结构元
    [R,C,S] = size(in);
    [se,n,rx,ry,rz] = strel3d(r);
    
    out = false(R,C,S);
    for i = 1+rx:R-rx
        for j = 1+ry:C-ry
            for k = 1+rz:S-rz
                out(i,j,k) = 1;
                for idx = 1:n
                    if in(i+se(idx,1),j+se(idx,2),k+se(idx,3))<1
                        out(i,j,k) = 0;
                        break;                    
                    end
                end                                   
            end
        end
    end
    
    end
    

    结构元与其他函数

    生成结构元的函数,建议三个方向半径一致。
    注:由于此处结构元特殊的判定方式,当三个方向半径不一致时,最终尺寸不一定等于用户输入的尺寸,但大体形态是相同的

    %% 生成三维球形结构元
    function [se,n,rx,ry,rz] = strel3d(r)
    
    % 判断用户输入半径
    if length(r)<2
        rx = r;
        ry = r;
        rz = r;
    elseif length(r)>2
        rx = r(1);
        ry = r(2);
        rz = r(3);
    else
        rx = r(1);
        ry = r(1);
        rz = r(2);
    end
    
    % 生成球形二值图 并获得目标索引
    [x,y,z] = meshgrid(-rx:rx,-ry:ry,-rz:rz);
    [x,y,z] = find3d(sqrt(x.^2+y.^2+z.^2)<(rx+ry+rz)/2.5); % 注意这里的判定方式
    se = [x-rx-1,y-ry-1,z-rz-1];
    
    n = size(se,1);
    
    end
    

    find3函数(类似MATLAB自带的find,但这里是三维的)

    %% 找到满足条件的值,类似MATLAB自带的find,但这里是三维的
    function [x,y,z] = find3d(in)
    
    [M,N,~] = size(in);
    
    idx = find(in);
    
    z = ceil(idx/M/N);
    idx = idx-(z-1)*M*N;
    y = ceil(idx/M);
    x = idx-(y-1)*M;
    
    end
    

    测试

    clear; close all; clc
    
    %% 生成测试图像(三维)
    im = zeros(50,50,50);
    im(20:30,20:30,10:40) = 1;
    
    %% 形态学操作
    % 膨胀
    im1 = dilate3d(im,5);
    
    % 腐蚀
    im2 = erode3d(im,3);
    im3 = erode3d(im,[3,3,10]);
    
    %% 显示结果
    viewer3d(im,double(im1),im,double(im2),im,double(im3))
    % 注意,仅仅运行到这里,是什么都不会显示的哦
    % viewer3d是可视化界面,你得和它互动,要显示什么你的自己学。
    % 这个东西怎么用,就参考“其他=2.关于viewer3d函数”
    

    测试结果如下,其中 红色为原始模型,绿色为操作后模型,黄色为重叠部分
    在这里插入图片描述


    其他

    1. 为了简便易理解,所以没有进行优化,运行速度一般
    2. 关于viewer3d函数,可查看另一篇文章
    3. 三维开闭运算可以组合腐蚀膨胀实现,这里就不贴代码了
    4. 如果有其他问题或需求,欢迎评论区留言或私信
    展开全文
  • matlab图像算法源码

    千次阅读 2014-01-13 15:27:46
    MATLAB程序实现如下: I=imread('xian.bmp'); J=double(I); J=-J+(256-1); %图像反转线性变换 H=uint8(J); subplot(1,2,1),imshow(I); subplot(1,2,2),imshow(H); 2.灰度线性变换 MATLAB程序实现如下: I=...
  • 用于图像处理去噪精细,可以利用程序快速处理图像
  • 分水岭算法+腐蚀膨胀
  • Matlab图像分割算法总结,如形态学边界提取,开启和闭合操作,膨胀腐蚀操作等等
  • matlab分水岭算法做海岸线的提取

    千次阅读 多人点赞 2017-02-07 10:47:54
    %直接应用分水岭算法 Lrgb = label2rgb(L);%转化为彩色图像 figure; imshow(Lrgb), %显示分割后的图像 title('Watershed transform of gradient magnitude (Lrgb)') se = strel('disk', 20);%圆形结构元素 ...
  • 自己看书写的数学形态学灰度腐蚀算法,C码。通过MATLAB仿真,和标准算法效果相同
  • 分水岭算法是一种图像区域分割法,分割的过程中将图片转化为灰度图,然后我会将灰度值看作是海拔,然后向较低点注水,这种基于地形学的解释。大佬链接:https://blog.csdn.net/TIQCmatlab/article/details/114077957...
  • matlab图像分割算法源码

    万次阅读 多人点赞 2019-03-09 17:37:37
    MATLAB程序实现如下: I=imread(‘xian.bmp’); J=double(I); J=-J+(256-1); %图像反转线性变换 H=uint8(J); subplot(1,2,1),imshow(I); subplot(1,2,2),imshow(H); 2.灰度线性变换 MATLAB程序实现如下: I...
  • MATLAB人脸检测算法

    千次阅读 2020-10-24 12:58:44
    MATLAB人脸检测算法 人脸检测是将人脸从复杂的背景图像中检测出来,它是实现人脸识别的基础和前提。 肤色重建 使用人脸肤色模板对灰度图像进行肤色重建,使其变成彩色图像,效果如下: 在函数function R=gray2rgb1...
  • FPGA实现车牌识别#二.MATLAB车牌图像的腐蚀膨胀与Sobel边缘检测 笔者大二学了数电,结合之前学习的一些机器学习的基础知识,...这一篇文章依旧是FPGA实现前的算法验证,依据上一篇文章得到的二值化图像,将使用腐蚀膨胀
  • 基于matlab GUI 灰度、二值化、腐蚀、直方图处理之水果识别 二、源代码 function varargout = the4th(varargin) %========filename:the4th.m============% %=========水果图像的模式识别==12120389==曹嘉=====% %===...
  • 车牌识别系统(LPR)在现代交通检测和...常见的车牌定位技术主要有:边缘检测法[2]、投影法[3]、神经网络法[4]、数学形态学法[5]、基于彩色图像的定位算法[6]。边缘检测法对车牌图像边框的连续性要求较高;神经网络方...
  • matlab实现分水岭算法

    千次阅读 2017-02-14 23:09:23
    数学形态学以图像的形态特征为研究...分水岭算法(Watershed)基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形
  • 前言逼逼叨:本人半路出家 之前是做自动化工业相机的攻城狮,由于遇见让自己可以回到生活的人,结果就结束了漂泊生活,来到她在城市回归生活,之后便从事图像处理成为了程序员,虽然之前有接触一些算法但仅限于去用...
  • matlab环境编程实现了形态学的核心算法:膨胀、腐蚀,进一步可用它们的组合实现形态学的开运算,闭运算,交替滤波、混合滤波、交替混合滤波、梯度、多分辨分析,等。 可用于一维信号的时域分析处理。希望对你有用...
  • 车牌识别系统Matlab算法实现

    万次阅读 2014-10-29 10:51:00
    % 字符分割模块算法 % 定位剪切后的彩色车牌图像--灰度--二值化--统一到黑底白字--去除上下边框 % --切割出最小范围--滤波--形态学处理--分割出7个字符 % 去除上下边框算法: % 1.黑白跳变小于阈

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,202
精华内容 480
关键字:

matlab腐蚀算法

matlab 订阅