不适合纯新手,因为很多基础知识没有提及
split-merge图像分割,在这篇文章中,指的并不是图像的通道的分离与通道的合并,而是图像的区域分离与合并,这两种的英文名字似乎有点相似,没学过的人看名字就混淆了。
早就学过区域分离与合并的算法,但是算法的种类太多,并不是每一个都有自己去实现一遍的价值。今天有时间就整理一下这个东西。和大家分享,有不同的见解与我讨论欢迎留言(我也不知道这文章下能不能留言,哈),首页上有联系方式,加我联系方式讨论吧。
如果是纯新手,不太适合看这些东西,因为有些东西在书上描述的很清楚,这里不重复说明这些重复内容
Quick Start
原理
原理简述
把图像细分为任意互相不相连的区域,在一定的规则下合并或者分离这些区域。在网上和书中的介绍中,将是否进行合并或分离的条件称之为谓词 P。其实就是条件P。满足则合并,不满足则分离。程序的核心思路就是上面那些。其细致的描述在书中可以查到。(比如冈萨雷斯的《数字图像处理》),不重复描述了。
程序的思路可以总结为一下的步骤:
1.把任意区域Ri分为4个不相连的象限,其满足P(Ri);
2.当不可能在分时,合并任何满足P(Rj ⋃ ⋃ \bigcupRk)=True的区域Rj和Rk;
3.不能进一步合并时,则停止。
P(Rj ⋃ ⋃ \bigcupRk)=True的区域Rj和Rk;
程序则可能有多种变体,比如在分裂的同时合并等。在步骤2中,满足条件的使用1或者255来填充,不满足用0来填充,则很容易检测出其连通性,最终得到一副分割图像。
注意的点
图像的尺寸如果不是2的整数次幂,最后将无法保证最后分离的到尺寸为1的区域。如果非要处理这种图像,算法需要作出一定的更改。
程序有多种变种,这个会影响到程序的效率和显示效果。
改变分裂与合并标准是改动程序的重要方向,可以得到不同的合并效果和分裂效果。如均方差等等。所以网上的程序有很多,但是结果图却有些不一样,要仔细看程序采用了哪些方法。
我自己用c++按照上面思路写的代码。运行效果如下:

如图,用窗口和划线显示了分裂和合并的过程,用struct 和stack解决的分裂时的存储问题。改程序采用了经典的四叉树分裂。不会适配所有尺寸的图像,随意图像并不完美。
为了方便读入图片和显示图片,我这里调用了opencv库。其代码已经上传至csdn上,毕竟有时候还是要下载点程序的。这种东西都是单个的算法,算不上项目要求,就不放在github上了,太难看。
这次就写那么多吧。更细致的内容全在书里了
参考内容
冈萨雷斯的《数字图像处理》
《精通matlab数字图像处理与识别》

opencv区域合并与融合笔记(非教程)相关推荐

  1. OpenCV之Python学习笔记

    RSS订阅 登陆 注册 原文链接地址:http://www.itozi.net/19477.html OpenCV之Python学习笔记 ITOZI 发布于 2015-08-06 分类:OpenSta ...

  2. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并

    OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...

  3. 基于OpenCV的图像融合

    OpenCV实践-基于OpenCV的图像融合 –<小白学视觉>学习笔记 我们可以尝试多种不同图像组合. 比如可以将两张不同的图片或文本图像与图像组合在一起, 或将彩色背景与圈像组合在一起. ...

  4. 12月19日 OpenCV 实战基础学习笔记——特征匹配

    文章目录 前言 一.特征匹配 1.Brute-force 蛮力匹配 2.1 对 1 匹配 3.k 对最佳匹配 二.答题卡识别 前言 本文为12月19日 OpenCV 实战基础学习笔记--特征匹配,分为 ...

  5. OpenCV for Ios 学习笔记(4)-标记检测1

    本文原始地址:OpenCV for Ios 学习笔记(4)-标记检测1 简单的标记经常是以白色块和黑色块构成的规则图形.因为我们预先知道这些因素,所以我们可以很容易检测标记. 如图: 首先,我们需要找 ...

  6. Python 自学笔记(教程)(七)

    Python 自学笔记(教程)(七) 代码 代码讲解 import time time.sleep() random random.randint() % 传送门 代码 今天的笔记很简单,就用课程作业 ...

  7. 蚂蚁笔记 linux安装教程,群晖docker安装蚂蚁笔记安装教程

    原标题:群晖docker安装蚂蚁笔记安装教程 背景 偶然看见其他网友群晖一个 用途 当然是安装镜像了,需要安装2个 映像 mongo与leanote 2.直接创建mongo容器,端口27017 其他默 ...

  8. 最新zotero与obsidian笔记联动教程(可代替citations和mdnotes)

    最新zotero与obsidian笔记联动教程(可代替citations和mdnotes) 一.联动原理 二.插件配置 1.zotero-better-bibtex 2.Bibnotes Format ...

  9. 108页《SpringBoot 学习笔记完整教程》PDF附下载

    今天Hydra分享给大家一本108页的<SpringBoot 学习笔记完整教程>,从SpringBoot的基本入门使用,到搭建项目进行代码实战,最终研究底层实现原理,基本涵盖了各个环节,可 ...

最新文章

  1. 活动助手Beta用户试用报告
  2. Memcache存储大数据的问题(大于1m)
  3. Active Directory系列之十七:实战详解域信任关系
  4. Mybatis生成器插件扩展,定制方法生成,list参数生成
  5. SpringAOP aspectJ ProceedingJoinPoint 获取当前方法
  6. 都会五星回评,欢迎留下地址-博客之星
  7. 2.8_single_cycle_link_list_单向循环链表
  8. Kafka 安装部署、集群启动、命令行操作 与 可视化工具 Kafka Tool
  9. linux下tomcat缓存磁盘文件,Linux环境下清理Tomcat缓存
  10. 走向Java架构师之路:成为架构师要掌握的8大能力
  11. python自动抓取局域网文件_python使用tcp实现局域网内文件传输
  12. 如何调试 chrome插件
  13. 没有公网IP?快解析实现内网穿透
  14. 在线Word文档怎么做—使用超级文档一站式解决
  15. Everyone Do this at the Beginning!!--kaggle数据预处理-超详细的解说
  16. 结识51CTO学院后【51CTO学院三周年】
  17. 《RFID技术与应用》测试选择题
  18. 项目管理的3个关键动作:启动、推进、复盘
  19. 运动会加油稿计算机学院150字,大学运动会经典加油稿150字左右2018
  20. 22岁90后白羊座罗生和勒索病毒的背后故事

热门文章

  1. 生产用计算机计入什么科目,生产车间水电费计入什么科目?
  2. 【SQL】spark sql 判断星期几 周六周日 平日 周末
  3. 弹出窗口lhgDialog API文档
  4. asp:CheckBoxList 在服务器端梆定值,在客户端获取不到值的解决办法
  5. Android之TextView显示特殊字符
  6. 安装oracle 权限不够,安装libtool,提示权限不够
  7. 排列组合算法实现--基于JS
  8. 揭秘阿里巴巴数据治理平台建设经验
  9. sigmastek泰克锂电池的优点
  10. git checkout 参数详解