- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
八邻域轮廓跟踪算法(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;
/ /扫描的
您可能关注的文档
- 2dfgdfg(2dfgdfg).doc
- 2k13按键指南(2k13 button Guide).doc
- 268382-ansys连续梁桥的命令流,由箱梁组成,用shell63单元来模拟箱梁(The command flow of the 268382-ansys continuous beam bridge is composed of box girders, and the shell63 unit is used to simulate the box girders).doc
- 2号发电机由热备用转检修(No. 2 generator is switched from hot standby to overhaul).doc
- 2网络管理员面试题(2 network administrator interview questions).doc
- 30大招教你花小钱就能过优质的生活(30 strokes teach you a penny to high-quality life).doc
- 30种你能使用的黑帽seo技巧(30 black hat SEO skills you can use).doc
- 25 洁具知识入门-特点-分类篇(25 sanitary ware knowledge - Features - Categories).doc
- 31个让你变聪明的方法(31 ways to make you smart).doc
- 31个城市轨道交通规划获得批准投资超万亿元-轨道交通-中国交通技术网-中国交通行业领先的资讯传媒(31 urban rail transit planning approved investment over one trillion yuan - rail transport - China Transportation Technology Network - China's leading traffi.doc
- 冬天钓鱼技巧(Fishing skills in winter).doc
- 冬季美容护肤小常识 妙用甘油保湿(Winter skin care tips with moisturizing glycerin).doc
- 冰箱工作原理(Refrigerator working principle).doc
- 冬天防寒措施 -温暖冬天(Winter cold measures - warm winter).doc
- 冲压3(Stamping 3).doc
- 凤县办案协作区办法(Fengxian District handling coordination measures).doc
- 凤凰古城旅游(Phoenix Town Tourism).doc
- 凹版预印纸箱面纸工艺(Gravure pre printed carton tissue).doc
- 出人意料的人口变化(Unexpected demographic changes).doc
- 出关所需单证和报关程序(Exit the required documents and customs procedures).doc
文档评论(0)