轮廓线扫描算法:Theo Pavlidis' Algorithm
轮廓线扫描算法:Theo Pavlidis' Algorithm
在介绍Pavlidis算法之前,先介绍个网址:http://www.imageprocessingplace.com/downloadsV3/rootdownloads/tutorials/contourtracingAbeerGeorgeGhuneim/index.html这个网站详细介绍了现有常见的几种Contour Tracing算法,英文好的同学直接浏览那边的文章吧。这里引用他们的图作为解释。
先介绍下Pavlidis的几个关键定义:当前像素位置,当前方向,P1,P2,P3三个像素点:
当前像素位置:
任意一个左边像素为背景的前景边界像素都可以作为起始像素,由算法来决定移动的下个位置。
当前方向
当前像素有4个方向,左,上,右,下。每次移动后方向可能会改变,例如从(i,j)移动到(i,j+1),那么方向就变成了下。
P1,P2,P3像素
有了当前像素和方向,P1,P2,P3像素的定义如下图所示:
在Figure 1中,当前方向为上,如果当前方向为左,那么P1,P2,P3就会变成左下像素,左边像素以及左上像素。总之从当前方向的视角看出,P1,P2,P3是与上图一致的。补充几张图:
有了以上定义,算法的步骤如下:
- 找到一个初始起点,并设置其方向为上(TOP)
如果P1是前景,那么移动到P2,再移动到P1。
如果P1不是前景,那么判断P2是否是前景。如果P2是前景,移动到P2。
如果P1,P2都不是前景,那么判断P3是否为前景,如果是,那么先右转,再移动到P3。
回到第2步,直到在同一个位置右转3次以上或者返回起始点3次以上结束。
算法标准实现可参考:
https://github.com/UnilVision/visionbase/tree/master/binary/contour tracing/Pavlidis
参考结果:
[原创文章,转载请注明出处:http://blog.csdn.net/unilvision/article/details/8687698
轮廓线扫描算法:Theo Pavlidis' Algorithm相关推荐
- 求解VRP问题的节约里程法、sweep扫描算法和λ互换法
第05章 求解容量约束车辆路径问题的启发式算法 Edited by Jiannywang@163.com 目 录 5.1 节约里程法. 1 5.1.1 C-W节约算法简介. 1 5.1.2 C-W ...
- 图像处理------泛洪填充算法(Flood Fill Algorithm) 油漆桶功能
泛洪填充算法(Flood Fill Algorithm) 泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是 windows paint的油漆桶功能.算法的原理很简单,就 ...
- 多旅行商问题:鹈鹕优化算法(Pelican Optimization Algorithm,POA)求解多仓库多旅行商问题(提供Matlab代码)
一.鹈鹕优化算法 鹈鹕优化算法(Pelican Optimization Algorithm,POA)由Pavel Trojovský和Mohammad Dehghani 于2022年提出,该算法模拟 ...
- 先验算法(Apriori Algorithm)原理及python代码实现
先验算法(Apriori Algorithm)是关联规则学习的经典算法之一.先验算法的设计目的是为了处理包含交易信息内容的数据库(例如,顾客购买的商品清单,或者网页常访清单.)而其他的算法则是设计用来 ...
- 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(五)分水岭算法(watershed algorithm)
8.5 分水岭算法(watershed algorithm) 1.基于拓扑理论的数学形态学的分割方法. 2.基本思想:把图像看作测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局 ...
- 感知哈希算法(perceptual hash algorithm),
感知哈希算法(perceptual hash algorithm),它的作用是对每张图像生成一个"指纹"(fingerprint)字符串,然后比较不同图像的指纹.结果越接近,就说明 ...
- 谷歌的网页排序算法(PageRank Algorithm)
本文将介绍谷歌的网页排序算法(PageRank Algorithm),以及它如何从250亿份网页中捞到与你的搜索条件匹配的结果.它的匹配效果如此之好,以至于"谷歌"(google) ...
- 操作系统 先来先服务算法(FCFS)、最短寻到时间优先算法(SSTF)、扫描算法(电梯算法,SCAN)、循环扫描算法(CSCAN)
操作系统 先来先服务算法(FCFS).最短寻到时间优先算法(SSTF).扫描算法(电梯算法,SCAN).循环扫描算法(CSCAN)和N步扫描算法(NStepScan)的程序实现 复制到本地即可运行 # ...
- 操作系统之文件管理:9、磁盘的结构与磁盘调度算法(先来先服务FCFS、最短寻找时间优先SSTF、扫描算法SCAN、循环扫描算法C-SCAN、LOOK调度算法、C-LOOK调度算法)
9.磁盘的结构 磁盘结构 思维导图 磁盘.磁道.扇区.盘面.柱面 如何在磁盘中读/写数据? 磁盘的物理地址 一次磁盘读/写操作需要的时间 磁盘调度算法 1.先来先服务FCFS 2.最短寻找时间优先SS ...
最新文章
- CSP认证201403-2窗口[C++题解]:模拟、结构体
- java final 修改_“无法改变的设计”——浅谈Java中的final关键字
- 解决maven项目Cannot change version of project facet Dynamic web module to 3.0
- 创新品类,N次方的市场爆炸力
- 顶级程序员的心得 - Coders at Work
- icon 做成html形式,一段生成iconfont预览html的代码
- 关于RecyclerView(一)基本使用
- 【linux所有命令——复习】
- Java学习笔记(JDBC数据库编程常用接口)
- 弹出启动windows安全中心服务器,无法启动Windows安全中心服务怎样处理
- 面试案例(2019)一
- virtualbox 设置静态IP
- 2022年公示的第一家企业征信备案机构
- 抢购茅台,618只能用这种方法
- 2022年csdn最全的Python练手经典趣味编程100例(部分
- 水 hdu5208 2015-04-20 21:03 36人阅读 评论(0) 收藏
- 已有123所大学将云创大数据人工智能免费直播课引入课堂!
- 2016猴年春联集锦
- Objective-C---8---@property KVC
- 2018年美赛O奖论文
热门文章
- 微生物 Alpha多样性 作图 16S 菌群 R语言
- 修复Linux 的GRUB引导文件
- 魔法宝石(邻接表+dfs更新)
- 华为手机显示切换服务器,手机切换云服务器
- 加勒比海盗船——最优装载问题(趣学算法C++代码和python代码)
- 1人工智能概述------Azure机器学习模型搭建实验(完整体验-手把手教学-机器学习的过程)
- 学海无涯!2021年抓住金三银四涨薪好时机,持续更新中
- 云原生系列二【Kubernetes】Kubernetes是如何运行的?
- 分享Silverlight/WPF/Windows Phone一周学习导读(11月22日-28日)
- Unity中实现赛车游戏