八邻域跟踪算法matlab,八邻域轮廓跟踪算法(Eight neighborhood contour tracking algorithm).doc...
八邻域轮廓跟踪算法(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...相关推荐
- 智能算法 | MATLAB实现SA模拟退火算法函数寻优
智能算法 | MATLAB实现SA模拟退火算法函数寻优 目录 智能算法 | MATLAB实现SA模拟退火算法函数寻优 基本介绍 算法描述 程序设计 参考资料 基本介绍 模拟退火算法(Simulated ...
- 猫群算法matlab实现,猫群算法仿生计算在图像聚类分析中的应用
摘 要: 针对传统优化算法在图像聚类分析中存在的复杂度高.容易陷入局部最优解的问题,提出了使用猫群算法求解图像聚类问题.该算法通过分组和混合策略的机制进行信息传递,用猫记忆当前群体中的全局最优解来更 ...
- 仿射投影算法 matlab,基于仿射投影算法的时延估计
Signal Process & System 号与系 基于仿射投影算法的时延估计 摘要:在时间延迟计中,通常利用互相关箅法对8寸延进行估计.然而,互相关算法受操声影较人,在低信比时无法准确对 ...
- em算法matlab图像应用,em算法matlab程序
EM 算法作业 EM 算法简单 介绍及应用 EM 算法是当存在数据缺失问题时,极... Matlab 实现根据以上推导,可以很容易实现 EM 算法估计 GMM 参数.现... 题目:matlab 实现 ...
- k近邻算法matlab实现_k近邻算法
k 近邻法 (k-NN) 是一种基于实例的学习方法,无法转化为对参数空间的搜索问题(参数最优化 问题).它的特点是对特征空间进行搜索.除了k近邻法,本章还对以下几个问题进行较深入的讨 论: 切比雪夫距 ...
- 图像降噪算法matlab,数字图像去噪典型算法及matlab实现
I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);% ...
- 免疫优化算法 matlab,基于人工免疫克隆选择算法的调度优化MATLAB源码
人工免疫克隆选择算法是一种比较新型的智能算法,其基本算法结构与遗传算法是类似的,以下源码是为网络节点分组调度问题而设计的算法. function [BestX,BestY,AllABfarm,LC1, ...
- 朴素贝叶斯算法matlab实现以及EM算法
这周,继续学习了朴素贝叶斯算法的一部分知识,看了matlab的贝叶斯分类算法.采用草地潮湿原因模型的一个例子来求证贝叶斯概率以及条件概率.联合概率的分析,详见日志http://blog.sina.co ...
- gwo算法matlab源代码,智能优化算法应用:基于GWO优化BP神经网络 - 附代码
智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 - 附代码 智能优化算法应用:基于GWO优化BP神经网络 文章目录智能优化算法应用:基于GWO优 ...
最新文章
- python装饰器-Python @函数装饰器及用法(超级详细)
- leetcode396. Rotate Function
- github emoji 表情列表
- Android android:screenOrientation的简介
- linux python 永久添加自己的模块路径
- 6.面向对象的三大基本特征
- Bailian2792 集合加法【数学】
- 精雕软件怎么把图片转成灰度图_精雕软件怎样保存bmp
- 计算机怎么接入外接键盘,无线键盘怎么连接电脑 享受无线惬意生活【图文】...
- 归一化相关系数相关匹配公式
- 苹果计算机重装系统步骤,苹果mac系统重装_苹果电脑Mac系统重装方法
- matlab射击小游戏,Matlab射箭小游戏设计,小虾米求救
- Unit 1: Packet Sniffing 1.1 Packet Sniffing Packet Sniffing Demos 1
- 大数据之大数据的典型应用
- Android 生成随机颜色值
- MPU9250配置及原始数据读取
- python如何定义函数_python如何定义函数
- 个人作业2---必应词典案例分析
- linux常用命令 和 常见错误解决方式
- oracle UGA分布示意图
热门文章
- 企业发布无线安装APP
- Fe3O4@SiO2硅包铁核壳纳米颗粒|链霉亲和素修饰的四氧化三铁颗粒|正硅酸乙酯(TEOS)进修饰改性磁性Fe3O4纳米颗粒
- arduino与蓝牙模块
- uniapp微信小程序video全屏苹果xs
- [C++][muduo]1-muduo安装和运行
- 这五大采购流程最需要实现自动化
- ADI Blackfin DSP处理器-BF533的开发详解1:软件和硬件的准备
- 想学设计模式、想搞架构设计,先学学 UML 系统建模吧
- 运营推广-百度快照收录技巧
- 独立站SaaS系统站群模式怎么玩