八邻域轮廓跟踪算法(Eight neighborhood contour tracking algorithm)

八邻域轮廓跟踪算法(Eight neighborhood contour tracking algorithm)

/ *************************************************************************

*函数名称:

* tracedib()

*参数:

*一个lpdibbits -指向源DIB图像指针

*长Lwidth -源图像宽度(象素数,必须是4的倍数)

*长lheight -源图像高度(象素数)

*返回值:

*为运算成功返回真实,否则返回假。

*说明:

*该函数用于对图像进行轮廓跟踪运算。

*要求目标图像为只有0和255两个灰度值的灰度图像。

************************************************************************ /

布尔CDibImage::TraceDIB(LPSTR lpdibbits Lwidth,长,长lheight)

{

LPSTR lpsrc;/ /指向源图像的指针

LPSTR lpdst;/ /指向缓存图像的指针

LPSTR lpnewdibbits;/ /指向缓存DIB图像的指针

hlocal hnewdibbits;

长llinebytes;/ /图像每行的字节数

我,J;/ /循环变量

无符号字符像素;/ /像素值

布尔bfindstartpoint;/ /是否找到起始点及回到起始点

布尔bfindpoint;/ /是否扫描到一个边界点

点出发,找到起始边界点与当前边界点;/ /

/ /八个方向和起始扫描方向

int方向[ 8 ] [ 2 ] = { { 1 },{0,1},{ 1,1 },{ 0 },{ 1,1 },{ 0,1 },{ 1,1 },{ - 1,0 } };

int直接;

/ /计算图像每行的字节数

llinebytes = widthbytes(Lwidth×8);

/ /暂时分配内存,以保存新图像

hnewdibbits = LocalAlloc(lhnd,llinebytes * lheight);

如果(hnewdibbits = = null)

{

返回false;

}

lpnewdibbits =(char *)locallock(hnewdibbits);

/ /初始化新分配的内存,设定初始值为255

lpdst =(char *)lpnewdibbits;

memset(lpdst(字节),255,llinebytes * lheight);

/ /先找到最左上方的边界点

bfindstartpoint = false;

(J = 0;J为<< lheight &!bfindstartpoint;j++)

{

为(i = 0;i < Lwidth &!bfindstartpoint;i++)

{

/ /指向源图像倒数第J行,第我个象素的指针

lpsrc =(char *)lpdibbits + llinebytes * j +我;

/ /取得当前指针处的像素值,注意要转换为unsigned char型

像素=(char)* lpsrc;

如果(像素= 0)

{

bfindstartpoint =真;

起点高度= J;

起点宽度=我;

/ /指向目标图像倒数第J行,第我个象素的指针

lpdst =(char *)lpnewdibbits + llinebytes * j +我;

* lpdst =(char)0;

}

}

}

/ /由于起始点是在左下方,故起始扫描沿左上方向

直接= 0;

/ /跟踪边界

bfindstartpoint = false;

/ /从初始点开始扫描

找到起点高度。高度=;

找到起点宽度。宽度=;

而(!bfindstartpoint)

{

bfindpoint = false;

而(!bfindpoint)

{

/ /沿扫描方向查看一个像素

lpsrc =(char *)lpdibbits + llinebytes *(找到高度+。

方向[直接] [ 1 ])+(CurrentPoint.Width +

方向[直接] [ 0 ]);

像素=(char)* lpsrc;

如果(像素= 0)

{

bfindpoint =真;

找到。高度=找到。高度+方向[直接] [ 1 ];

找到。宽度=找到。宽度+方向[直接] [ 0 ];

如果(currentpoint.height = =起点。高度和宽度找到。

= =起点宽度)。

{

bfindstartpoint =真;

}

lpdst =(char *)lpnewdibbits + llinebytes找到高*。

+找到。宽度;

* lpdst =(char)0;

/

八邻域跟踪算法matlab,八邻域轮廓跟踪算法(Eight neighborhood contour tracking algorithm).doc...相关推荐

  1. 智能算法 | MATLAB实现SA模拟退火算法函数寻优

    智能算法 | MATLAB实现SA模拟退火算法函数寻优 目录 智能算法 | MATLAB实现SA模拟退火算法函数寻优 基本介绍 算法描述 程序设计 参考资料 基本介绍 模拟退火算法(Simulated ...

  2. 猫群算法matlab实现,猫群算法仿生计算在图像聚类分析中的应用

    摘  要: 针对传统优化算法在图像聚类分析中存在的复杂度高.容易陷入局部最优解的问题,提出了使用猫群算法求解图像聚类问题.该算法通过分组和混合策略的机制进行信息传递,用猫记忆当前群体中的全局最优解来更 ...

  3. 仿射投影算法 matlab,基于仿射投影算法的时延估计

    Signal Process & System 号与系 基于仿射投影算法的时延估计 摘要:在时间延迟计中,通常利用互相关箅法对8寸延进行估计.然而,互相关算法受操声影较人,在低信比时无法准确对 ...

  4. em算法matlab图像应用,em算法matlab程序

    EM 算法作业 EM 算法简单 介绍及应用 EM 算法是当存在数据缺失问题时,极... Matlab 实现根据以上推导,可以很容易实现 EM 算法估计 GMM 参数.现... 题目:matlab 实现 ...

  5. k近邻算法matlab实现_k近邻算法

    k 近邻法 (k-NN) 是一种基于实例的学习方法,无法转化为对参数空间的搜索问题(参数最优化 问题).它的特点是对特征空间进行搜索.除了k近邻法,本章还对以下几个问题进行较深入的讨 论: 切比雪夫距 ...

  6. 图像降噪算法matlab,数字图像去噪典型算法及matlab实现

    I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);% ...

  7. 免疫优化算法 matlab,基于人工免疫克隆选择算法的调度优化MATLAB源码

    人工免疫克隆选择算法是一种比较新型的智能算法,其基本算法结构与遗传算法是类似的,以下源码是为网络节点分组调度问题而设计的算法. function [BestX,BestY,AllABfarm,LC1, ...

  8. 朴素贝叶斯算法matlab实现以及EM算法

    这周,继续学习了朴素贝叶斯算法的一部分知识,看了matlab的贝叶斯分类算法.采用草地潮湿原因模型的一个例子来求证贝叶斯概率以及条件概率.联合概率的分析,详见日志http://blog.sina.co ...

  9. gwo算法matlab源代码,智能优化算法应用:基于GWO优化BP神经网络 - 附代码

    智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 文章目录智能优化算法应用:基于GWO优 ...

最新文章

  1. python装饰器-Python @函数装饰器及用法(超级详细)
  2. leetcode396. Rotate Function
  3. github emoji 表情列表
  4. Android android:screenOrientation的简介
  5. linux python 永久添加自己的模块路径
  6. 6.面向对象的三大基本特征
  7. Bailian2792 集合加法【数学】
  8. 精雕软件怎么把图片转成灰度图_精雕软件怎样保存bmp
  9. 计算机怎么接入外接键盘,无线键盘怎么连接电脑 享受无线惬意生活【图文】...
  10. 归一化相关系数相关匹配公式
  11. 苹果计算机重装系统步骤,苹果mac系统重装_苹果电脑Mac系统重装方法
  12. matlab射击小游戏,Matlab射箭小游戏设计,小虾米求救
  13. Unit 1: Packet Sniffing 1.1 Packet Sniffing Packet Sniffing Demos 1
  14. 大数据之大数据的典型应用
  15. Android 生成随机颜色值
  16. MPU9250配置及原始数据读取
  17. python如何定义函数_python如何定义函数
  18. 个人作业2---必应词典案例分析
  19. linux常用命令 和 常见错误解决方式
  20. oracle UGA分布示意图

热门文章

  1. 企业发布无线安装APP
  2. Fe3O4@SiO2硅包铁核壳纳米颗粒|链霉亲和素修饰的四氧化三铁颗粒|正硅酸乙酯(TEOS)进修饰改性磁性Fe3O4纳米颗粒
  3. arduino与蓝牙模块
  4. uniapp微信小程序video全屏苹果xs
  5. [C++][muduo]1-muduo安装和运行
  6. 这五大采购流程最需要实现自动化
  7. ADI Blackfin DSP处理器-BF533的开发详解1:软件和硬件的准备
  8. 想学设计模式、想搞架构设计,先学学 UML 系统建模吧
  9. 运营推广-百度快照收录技巧
  10. 独立站SaaS系统站群模式怎么玩