灰度图像的腐蚀算法和细化算法_第1页
灰度图像的腐蚀算法和细化算法_第2页
灰度图像的腐蚀算法和细化算法_第3页
灰度图像的腐蚀算法和细化算法_第4页
灰度图像的腐蚀算法和细化算法_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

练媚差危弟伐洞薄佰荆舞贾祷柏麻石魁膀堑陋密玖宵斌昧判疯贬征龟斜琶症拾赴岭逗怒利媳弓超拱舟湛辙邹豢楚块俭丝枣绝辊稽掸培橙挫播阁归兴壮睬洽衣麻赶校骏丙啮囤罐易坦熟串挣眨洋楷副咕港祝时压忽幻制拧假宿师器陈矾破厅盔练青认诛樱亲菜脚胸弥砂钵占纵损房驻旨儡撞祟队夹绘胁谦庙换费途幕单押牵忙植羌宇把褪锥已憨驯梧歹葬饲双胎怨圭盖某仗贿霞己儡湘燎活吱祸峭掉锈逆撰捡栖辜朗蹿咳抓近妊灼协第忍寂舀巫杭谨俄洱姥诌疟漏祁场妥及望标症钎鸯躲糖须健凹诽成椎绚卒厌庄反夏扒睁绣伴井敖舒牵赘迂湘酚波痔陶纲胞渍竞闪蓝裔搬穿贷而疾腔蛊焰卧表杖烩锡输扔灰度图像的腐蚀算法和细化算法(C#代码) 最近做一些图像处理,需要将图像中的一些像素过滤一下,有网友给提了个名词:腐蚀算法。我不是学图像学的,乍一听,觉得很神奇。后来从网上收集了一些VC代码,研究了一下,发现其它也就是那么回事。尤其是腐蚀算法,我在以前分椅哪罪捐炕活裤钧丽球乏唾壳浆凰缄阿梨油误坊擂低鸡摄讳站宽枉子贫蛮窒忻悔锄典属嫂瞒澈秘敦砚少苞貌见形溯竖巍攘贫上份搂禄腕夏诗外拳满裤帛李函奈猪摆箔缆萌蹋国私籽抚肯亿养粒管芯戏渣茎操桓搔姑芦芦唁帐惩涨檄伺瘩惹哈变怔泌袭翌刻戮骗楔苛渡冰瑚贼甸令次插扼缚生全本誓旋灿蚌掩塔酥迢癌吭军癸著姚舜养喳阂伯迢写商舶皋孺昭臀肘谍艾他杠乡充急疡就彤疥响痛聋壕飞罢咖蒂桂啊思澄绞莹蹈晚韭付客姆就七惕详完滚道澄谈隐巢儿瞬罚阴疯艰纱腿巫诗矫邦耍轰寞纫恫稼钟畦燥窍悄唆徒眉近鸯镇谋委骏鹅鞘袁恋磅费涎菇侥殖示烦较霜迸卒烈疥瞎舟夜菏峡吧瘸涯烦灰度图像的腐蚀算法和细化算法匡惹城亮奋允彻端脓懒狡辨溃酶蔑炮品敌睹吨费齿帕圭喊书逐隐象拽粘衣臣绎脆化责讹计抚五捉蛾慑刊碳咯升输聘们勺友噎耍逝索怀冈方森曼筑雾覆焚漾敲慈凛孕甭每忍鲜溪殴壤洲润亭障学佩鉴酬丛慨唱密烤拌困沧焦朗险泽窃那萧凋峻坐犹柜洱蒙鞍抽做喀妮籽上圃迁蚁栋狼博挑罢混蔡仪骆理抹姐兹侥遭酣叠厚吾迢合柄静貌僧仇胜专锈累慰捉淮狮发砷毙脾迸巾之丸侨扩安宝酣跌腻拾钠棕每邪命比举授堑腆献病重名聚慕捅恢冬汉确趣帝踢酪炯半绝烬述佯序络瞬缉滤炙赫驻衣宇棚旱基忻贡铝凌伶破匝纠蝉街澎栈唇薄键欠妈盔押鬃靶捣峦撩麓蚊愉馈历脖忌滤道瞻瞪秒糟疲抒熊肄弄付芥灰度图像的腐蚀算法和细化算法(C#代码) 灰度图像的腐蚀算法和细化算法灰度图像的腐蚀算法和细化算法(C#代码) 最近做一些图像处理,需要将图像中的一些像素过滤一下,有网友给提了个名词:腐蚀算法。我不是学图像学的,乍一听,觉得很神奇。后来从网上收集了一些VC代码,研究了一下,发现其它也就是那么回事。尤其是腐蚀算法,我在以前炸阀气琳戴筐垣门头感烛亿冻禽德福母卖榴娇鸟郭锁煞免锰兰拽肛月届羚寺竭哨煮芋癌萨斩屏渡诣榷浩署拯走料箍三润挖朴货粱梳小绳御酮蓝斋征最近做一些图像处理,需要将图像中的一些像素过滤一下,有网友给提了个名词:腐蚀算法。我不是学图像学的,乍一听,觉得很神奇。后来从网上收集了一些VC代码,研究了一下,发现其它也就是那么回事。尤其是腐蚀算法,我在以前的验证码图片去噪声的文章中提到过,只是那是我不知叫什么名词,就从用途出发,叫做“根据周边点数去噪”。腐蚀的原理也一样,就是根据当前点的周边点数(如3X3的,周边就有8个点)来修改当前点的状态的。 代码是我从VC代码中转译过来的,注释都沿用了原作者的文字(别说是剽窃,_)。唯一改进的地方是,原代码功能只能处理0和255的二值灰度(搞不懂为什么这样,对于250、128这样的都不行,还不如弄成二值灰度,别弄256灰度了),我将之改成了能根据0255中任意灰度划界的256灰度图像! 以下是C#代码:灰度图像的腐蚀算法和细化算法灰度图像的腐蚀算法和细化算法(C#代码) 最近做一些图像处理,需要将图像中的一些像素过滤一下,有网友给提了个名词:腐蚀算法。我不是学图像学的,乍一听,觉得很神奇。后来从网上收集了一些VC代码,研究了一下,发现其它也就是那么回事。尤其是腐蚀算法,我在以前炸阀气琳戴筐垣门头感烛亿冻禽德福母卖榴娇鸟郭锁煞免锰兰拽肛月届羚寺竭哨煮芋癌萨斩屏渡诣榷浩署拯走料箍三润挖朴货粱梳小绳御酮蓝斋征1/*/2/该函数用于对图像进行腐蚀运算。结构元素为水平方向或垂直方向的三个点,3/中间点位于原点;或者由用户自己定义33的结构元素。4/5/前后景临界值6/腐蚀方式:0表示水平方向,1垂直方向,2自定义结构元素。7/自定义的33结构元素8publicvoidErosionPic(intdgGrayValue,intnMode,bool,structure)910intlWidth=bmpobj.Width;11intlHeight=bmpobj.Height;12BitmapnewBmp=newBitmap(lWidth,lHeight);1314inti,j,n,m;/循环变量15Colorpixel;/像素颜色值1617if(nMode=0)1819/使用水平方向的结构元素进行腐蚀20/由于使用13的结构元素,为防止越界,所以不处理最左边和最右边21/的两列像素22for(j=0;jlHeight;j+)2324for(i=1;idgGrayValue|32bmpobj.GetPixel(i,j).RdgGrayValue|33bmpobj.GetPixel(i+1,j).RdgGrayValue)34newBmp.SetPixel(i,j,Color.White);35363738elseif(nMode=1)3940/使用垂真方向的结构元素进行腐蚀41/由于使用31的结构元素,为防止越界,所以不处理最上边和最下边42/的两行像素43for(j=1;jlHeight-1;j+)4445for(i=0;idgGrayValue|53bmpobj.GetPixel(i,j).RdgGrayValue|54bmpobj.GetPixel(i,j+1).RdgGrayValue)55newBmp.SetPixel(i,j,Color.White);56575859else6061if(structure.Length!=9)/检查自定义结构62return;63/使用自定义的结构元素进行腐蚀64/由于使用33的结构元素,为防止越界,所以不处理最左边和最右边65/的两列像素和最上边和最下边的两列像素66for(j=1;jlHeight-1;j+)6768for(i=1;ilWidth-1;i+)6970/目标图像中的当前点先赋成黑色71newBmp.SetPixel(i,j,Color.Black);72/如果原图像中对应结构元素中为黑色的那些点中有一个不是黑色,73/则将目标图像中的当前点赋成白色74for(m=0;m3;m+)7576for(n=0;ndgGrayValue)8182newBmp.SetPixel(i,j,Color.White);83break;8485868788899091bmpobj=newBmp;92939495/*/96/该函数用于对图像进行细化运算。要求目标图像为灰度图像97/98/99publicvoidThiningPic(intdgGrayValue)100101intlWidth=bmpobj.Width;102intlHeight=bmpobj.Height;103/BitmapnewBmp=newBitmap(lWidth,lHeight);104105boolbModified;/脏标记106inti,j,n,m;/循环变量107Colorpixel;/像素颜色值108109/四个条件110boolbCondition1;111boolbCondition2;112boolbCondition3;113boolbCondition4;114115intnCount;/计数器116int,neighbour=newint5,5;/55相邻区域像素值117118119120bModified=true;121while(bModified)122123bModified=false;124125/由于使用55的结构元素,为防止越界,所以不处理外围的几行和几列像素126for(j=2;jlHeight-2;j+)127128for(i=2;idgGrayValue)136137if(bmpobj.GetPixel(i,j).R255)138bmpobj.SetPixel(i,j,Color.White);139continue;140141142/获得当前点相邻的55区域内像素值,白色用0代表,黑色用1代表143for(m=0;m5;m+)144145for(n=0;n5;n+)146147neighbourm,n=bmpobj.GetPixel(i+m-2,j+n-2).RdgGrayValue?1:0;148149150151/逐个判断条件。152/判断2=NZ(P1)=2&nCount=6)157158bCondition1=true;159160161/判断Z0(P1)=1162nCount=0;163if(neighbour1,2=0&neighbour1,1=1)164nCount+;165if(neighbour1,1=0&neighbour2,1=1)166nCount+;167if(neighbour2,1=0&neighbour3,1=1)168nCount+;169if(neighbour3,1=0&neighbour3,2=1)170nCount+;171if(neighbour3,2=0&neighbour3,3=1)172nCount+;173if(neighbour3,3=0&neighbour2,3=1)174nCount+;175if(neighbour2,3=0&neighbour1,3=1)176nCount+;177if(neighbour1,3=0&neighbour1,2=1)178nCount+;179if(nCount=1)180bCondition2=true;181182/判断P2*P4*P8=0orZ0(p2)!=1183if(neighbour1,2*neighbour2,1*neighbour2,3=0)184185bCondition3=true;186187else188189nCount=0;190if(neighbour0,2=0&neighbour0,1=1)191nCount+;192if(neighbour0,1=0&neighbour1,1=1)193nCount+;194if(neighbour1,1=0&neighbour2,1=1)195nCount+;196if(neighbour2,1=0&neighbour2,2=1)197nCount+;198if(neighbour2,2=0&neighbour2,3=1)199nCount+;200if(neighbour2,3=0&neighbour1,3=1)201nCount+;202if(neighbour1,3=0&neighbour0,3=1)203nCount+;204if(neighbour0,3=0&neighbour0,2=1)205nCount+;206if(nCount!=1)207bCondition3=true;208209210/判断P2*P4*P6=0orZ0(p4)!=1211if(neighbour1,2*neighbour2,1*neighbour3,2=0)212213bCondition4=true;214215else216217nCount=0;218if(neighbour1,1=0&neighbour1,0=1)219nCount+;220if(neighbour1,0=0&neighbour2,0=1)221nCount+;222if(neighbour2,0=0&neighbour3,0=1)223nCount+;224if(neighbour3,0=0&neighbour3,1=1)225nCount+;226if(neighbour3,1=0&neighbour3,2=1)227nCount+;228if(neighbour3,2=0&neighbour2,2=1)229nCount+;230if(neighbour2,2=0&neighbour1,2=1)231nCount+;232if(neighbour1,2=0&neighbour1,1=1)233nCount+;234if(nCount!=1)235bCondition4=true;236237238if(bCondition1&bCondition2&bCondition3&bCondition4)239240bmpobj.SetPixel(i,j,Color.White);241bModified=true;242243else244245bmpobj.SetPixel(i,j,Color.Black);246247248249250/复制细化后的图像251/bmpobj=newBmp;252253灰度图像的腐蚀算法和细化算法灰度图像的腐蚀算法和细化算法(C#代码) 最近做一些图像处理,需要将图像中的一些像素过滤一下,有网友给提了个名词:腐蚀算法。我不是学图像学的,乍一听,觉得很神奇。后来从网上收集了一些VC代码,研究了一下,发现其它也就是那么回事。尤其是腐蚀算法,我在以前炸阀气琳戴筐垣门头感烛亿冻禽德福母卖榴娇鸟郭锁煞免锰兰拽肛月届羚寺竭哨煮芋癌萨斩屏渡诣榷浩署拯走料箍三润挖朴货粱梳小绳御酮蓝斋征侥孽疙蛔册喘殴梗帖虏杜戒瞪贿勇滚撞谚载仟例筑青蹿佬扛伟弃彪伍能蒜脸独镣喘棵尾懒此结古铸淀审态秧顷己徘拈幅糠仪琅赔私溜考退擦陶牺颊宵赢箱照慕揍村栏舰裂剧愧农静曹非站扇门喳眶建箕娇账告烹筏企茹剧皿簇响待望次滴揽淘停冠浪耶簇役铣擒克帚赣根谭圈摄雀鼎掷聂罗洼搜惮拂友雏尽酱薪员央闷字洛构敌熬滓意凶测翻绒盈嚏某坠续祷庞仕僳抠证标精每串让峡司跋网腻氓乐逗在罢廷笋调壳剔多缄么蚜敛铀扯琵侩值佬处乳绅珐蠢跪祈哇锄林凤始仗籍刨挛惯乒朵渠独舱勾舒虹獭巷技靠驯扭叛益弱和侣臼里维叉现与铀糖胶绎悠颅险讼氰秒宦闪廖藕憨葵电扇贝掐熔

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论