byxdaz的留言板

byxdaz
博客专家认证
2020-01-02 06:33:57
大家好,这里是我的留言板,如果有问题,欢迎大家留言,我会第一时间进行回复
...全文
142 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nan_gua520 2020-03-20
  • 打赏
  • 举报
回复
有matlab的晶界提取算法代码吗
weixin_42949360 2020-02-26
  • 打赏
  • 举报
回复
使用支持https的方式编译libcur,提示无法打开包括文件:“libssh2.h”。请问是不是需要ssh2的库?
细化算法的分类: 依据是否使用迭代运算可以分为两类:第一类是非迭代算法,一次即产生骨架,如基于距离变换的方法。游程长度编码细化等。第二类是迭代算法,即重复删除图像边缘满足一定条件的像素,最终得到单像素宽带骨架。迭代方法依据其检查像素的方法又可以再分成串行算法和并行算法,在串行算法中,是否删除像素在每次迭代的执行中是固定顺序的,它不仅取决于前次迭代的结果,也取决于本次迭代中已处理过像素点分布情况,而在并行算法中,像素点删除与否与像素值图像中的顺序无关,仅取决于前次迭代的结果。在经典细化算法发展的同时,起源于图像集合运算的形态学细化算法也得到了快速的发展。 Hilditch、Pavlidis、Rosenfeld细化算法:这类算法则是在程序中直接运算,根据运算结果来判定是否可以删除点的算法,差别在于不同算法的判定条件不同。 其中Hilditch算法使用于二值图像,比较普通,是一般的算法; Pavlidis算法通过并行和串行混合处理来实现,用位运算进行特定模式的匹配,所得的骨架是8连接的,使用于0-1二值图像 ;Rosenfeld算法是一种并行细化算法,所得的骨架形态是8-连接的,使用于0-1二值图像 。 后两种算法的效果要更好一些,但是处理某些图像时效果一般,第一种算法使用性强些。 索引表细化算法:经过预处理后得到待细化的图像是0、1二值图像。像素值为1的是需要细化的部分,像素值为0的是背景区域。基于索引表的算法就是依据一定的判断依据,所做出的一张表,然后根据魔鬼要细化的点的八个邻域的情况查询,若表中元素是1,若表中元素是1,则删除该点(改为背景),若是0则保留。因为一个像素的8个邻域共有256中可能情况,因此,索引表的大小一般为256。 图象细化算法代码: 下面是我在网上搜索到的一些细化算法的源码,只是为了自己学习方便,可能有错误。 【来 源】:http://blog.csdn.net/byxdaz/archive/2006/02/27/610835.aspx #include "StdAfx.h" #include #include void beforethin(unsigned char *ip, unsigned char *jp, unsigned long lx, unsigned long ly) { unsigned long i,j; for(i=0; i0) jp[i*lx+j]=1; else jp[i*lx+j]=0; } } } ///////////////////////////////////////////////////////////////////////// //Hilditch细化算法 //功能:对图象进行细化 //参数:image:代表图象的一维数组 // lx:图象宽度 // ly:图象高度 // 无返回值 void ThinnerHilditch(void *image, unsigned long lx, unsigned long ly) { char *f, *g; char n[10]; unsigned int counter; short k, shori, xx, nrn; unsigned long i, j; long kk, kk11, kk12, kk13, kk21, kk22, kk23, kk31, kk32, kk33, size; size = (long)lx * (long)ly; g = (char *)malloc(size); if(g == NULL) { printf("error in allocating memory!\n"); return; } f = (char *)image; for(i=0; i=1) bdr1|=0x80>>k; } if((bdr1&0252)== 0252) continue; f[kk] = 2; b="0"; for(k=0; k<=7; k++) { b+=bdr1&(0x80>>k); } if(b<=1) f[kk]=3; if((bdr1&0160)!=0&&(bdr1&07)!=0&&(bdr1&0210)==0) f[kk]=3; else if((bdr1&&0301)!=0&&(bdr1&034)!=0&&(bdr1&042)==0) f[kk]=3; else if((bdr1&0202)==0 && (bdr1&01)!=0) f[kk]=3; else if((bdr1&0240)==0 && (bdr1&0100)!=0) f[kk]=3; else if((bdr1&050)==0 && (bdr1&020)!=0) f[kk]=3; else if((bdr1&012)==0 && (bdr1&04)!=0) f[kk]=3; } } for(i=1; i=1) bdr1|=0x80>>k; if(n[k]>=2) bdr2|=0x80>>k; } if(bdr1==bdr2) { f[kk] = 4; continue; } if(f[kk]!=2) continue; if((bdr2&0200)!=0 && (bdr1&010)==0 && ((bdr1&0100)!=0 &&(bdr1&001)!=0 || ((bdr1&0100)!=0 ||(bdr1 & 001)!=0) && (bdr1&060)!=0 &&(bdr1&06)!=0)) { f[kk] = 4; } else if((bdr2&040)!=0 && (bdr1&02)==0 && ((bdr1&020)!=0 && (bdr1&0100)!=0 || ((bdr1&020)!=0 || (bdr1&0100)!=0) && (bdr1&014)!=0 && (bdr1&0201)!=0)) { f[kk] = 4; } else if((bdr2&010)!=0 && (bdr1&0200)==0 && ((bdr1&04)!=0 && (bdr1&020)!=0 || ((bdr1&04)!=0 || (bdr1&020)!=0) && (bdr1&03)!=0 && (bdr1&0140)!=0)) { f[kk] = 4; } else if((bdr2&02)!=0 && (bdr1&040)==0 && ((bdr1&01)!=0 && (bdr1&04)!=0 || ((bdr1&01)!=0 || (bdr1&04)!=0) && (bdr1&0300)!=0 && (bdr1&030)!=0)) { f[kk] = 4; } } } for(i=1; i=4) bdr4|=0x80>>k; if(n[k]>=5) bdr5|=0x80>>k; } if((bdr4&010) == 0) { f[kk] = 5; continue; } if((bdr4&040) == 0 && bdr5 ==0) { f[kk] = 5; continue; } if(f[kk]==3||f[kk]==4) f[kk] = c; } } erase = 0; for(i=1; i0) { if(!cond) continue; g[kk] = 0; shori = 1; continue; } if(n[6]==1 && n48==0 && n123>0) { if(!cond) continue; g[kk] = 0; shori = 1; continue; } if(n[8]==1 && n26==0 && n345>0) { if(!cond) continue; g[kk] = 0; shori = 1; continue; } if(n[4]==1 && n26==0 && n781>0) { if(!cond) continue; g[kk] = 0; shori = 1; continue; } if(n[5]==1 && n46==0) { if(!cond) continue; g[kk] = 0; shori = 1; continue; } if(n[7]==1 && n68==0) { if(!cond) continue; g[kk] = 0; shori = 1; continue; } if(n[1]==1 && n82==0) { if(!cond) continue; g[kk] = 0; shori = 1; continue; } if(n[3]==1 && n24==0) { if(!cond) continue; g[kk] = 0; shori = 1; continue; } cond = 1; if(!cond) continue; g[kk] = 0; shori = 1; } } for(i=0; i

594

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧