《冈萨雷斯 数字图像处理(第三版)》

http://www.cnblogs.com/liugl7/p/5249453.html

http://www.cnblogs.com/carfield/archive/2012/06/14/2548831.html

在理解m邻接之前,先了解一下像素邻域的概念:

p的4邻域就是4个水平和垂直的相邻像素组成,p的D邻域由4个对角相邻像素组成,这两组点共同组成p的8邻域。

为了建立两个像素点之间是否有连接关系,我们需要定义一些准则,令V是用于定义邻接性的灰度值集合,当V={1},表示将图像中所有为1的点关联起来,当然了V中可能有更多的像素点,那么只要是来自V中的像素点都可以定义邻接性。

4邻接

下图中V={1},找出图中4邻接的像素点

8邻接

下图中V={1},找出图中8邻接的像素点

m邻接

对于V 假设要p,q两点是m邻接的 则要满足下面两个条件之一即可

1、q在p的4邻域中,

2、q在p的对角邻域中,并且q的4邻域与p的4领域相交为空集(交集无点属于V)

下图中V={1},找出图中m邻接的像素点

在这个图中,8邻域中的中间的那个1可以有两条路到达右上角的那个1,这就是所说的二义性,这个情况在边缘检测里面是很不希望的。

而改成m邻域以后,中间的1像素和右上角的像素是8连通的却不是m连通的,这可以从m连通的定义得到,因此,如果用M连通从中间的1到右上角的1就只有一条路。

M邻接本质是消除了8邻接多余的连接路径,更通俗的理解是:当像素间同时存在4邻接和8邻接时,优先采用4邻接,屏蔽和一个像素同时存在4邻接的两个像素之间的8邻接。

??属于4邻接一定属于8邻接和m邻接??

m邻接的更多相关文章

  1. 邻接表的广度优先遍历(java版)

    到 0 的权是 91 到 2 的权是 31 到 3 的权是 61 到 4 的权是 7 2 到 0 的权是 22 到 3 的权是 5 3 到 0 的权是 33 到 4 的权是 1 4 到 2 的权是 2 ...

  2. 06-图1 列出连通集 (25分)(C语言邻接表实现)

    题目地址:https://pta.patest.cn/pta/test/558/exam/4/question/9495 由于边数E<(n*(n-1))/2 所以我选用了邻接表实现,优先队列用循 ...

  3. 数字图像处理中的4邻接,8邻接与m邻接

    像素之间的邻接性: 4邻接.如果q在集合N4(p)中,则具有V中数值的两个像素p和q是4邻接的. 8邻接.如果q在集合N8(p)中,则具有V中数值的两个像素p和q是8邻接的. m邻接(混合邻接).如果 ...

  4. 图的邻接多重表和搜索(C++版本)

    最近在学数据结构,学到图这一章,网上的C++版本的代码乱得不行,所以自己写了一个完整C++版本的放这里. 用邻接多重表表示一个无向图,并给出DFS和BFS搜索代码.邻接多重表好处就是贼直观,几条边就几 ...

  5. 邻接表有向图(三)之 Java详解

    前面分别介绍了邻接表有向图的C和C++实现,本文通过Java实现邻接表有向图. 目录 1. 邻接表有向图的介绍 2. 邻接表有向图的代码说明 3. 邻接表有向图的完整源码 转载请注明出处:http:/ ...

  6. 邻接表有向图(二)之 C++详解

    本章是通过C++实现邻接表有向图. 目录 1. 邻接表有向图的介绍 2. 邻接表有向图的代码说明 3. 邻接表有向图的完整源码 转载请注明出处:http://www.cnblogs.com/skywa ...

  7. 邻接表有向图(一)之 C语言详解

    本章介绍邻接表有向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实现 ...

  8. 邻接表无向图(三)之 Java详解

    前面分别介绍了邻接表无向图的C和C++实现,本文通过Java实现邻接表无向图. 目录 1. 邻接表无向图的介绍 2. 邻接表无向图的代码说明 3. 邻接表无向图的完整源码 转载请注明出处:http:/ ...

  9. 邻接表无向图(二)之 C++详解

    本章是通过C++实现邻接表无向图. 目录 1. 邻接表无向图的介绍 2. 邻接表无向图的代码说明 3. 邻接表无向图的完整源码 转载请注明出处:http://www.cnblogs.com/skywa ...

  10. 邻接表无向图(一)之 C语言详解

    本章介绍邻接表无向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实现 ...

随机推荐

  1. 如何在asp.net(C#)里用正则表达式验证手机号码

  2. mvc中在cshtml页面中如何访问静态页面.html

    把静态页面放到@Url.Content();中,如href="@Url.Content("a.html")"

  3. ASCII专用测试字符串

    这段是废话: 在很多时候不同语言所写的不同终端中 经常会有字符串转码的问题 常用一下字符串测试不同终端的输出可以快速匹配和修改默认转码 正文: !""""#$% ...

  4. Nginx的安装--------tar包安装

    Nginx的安装,在网上搜索是很多的结果,但是 真的安装起来却花费了不少 心思,总结起来就是依赖包安装了,但是没有指定对的路径,在安装的过程中遇到过两个问题: ①make[1]: *** [/usr/ ...

  5. 【JZOJ3236】矮人排队

    description 在七山七海之外的一个小村庄,白雪公主与N个矮人住在一起,所有时间都花在吃和玩League of Legend游戏.白雪公主决心终结这样的生活,所以为他们举办了体育课. 在每节课 ...

  6. Docker配置JDK1.8

    1.安装Docker(菜鸟教程有) https://www.runoob.com/docker/centos-docker-install.html 2.docker下载centos镜像(用作配置jd ...

  7. l洛谷 NOIP提高组模拟赛 Day2

    传送门 ## T1 区间修改+单点查询.差分树状数组. #include<iostream> #include<cstdio> #include<cstring> ...

  8. java分析工具arthas

    wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar --target-ip 0.0.0.0

  9. 利用IDEA构建springboot应用--controller例子

    微服务 微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务.一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议. ...

  10. quatz调度-手动终止线程(1) 创建触发器,线程执行完毕后添加到cleaner list

    import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException;impor ...