圖像細(xì)化算法大全_第1頁(yè)
圖像細(xì)化算法大全_第2頁(yè)
圖像細(xì)化算法大全_第3頁(yè)
圖像細(xì)化算法大全_第4頁(yè)
圖像細(xì)化算法大全_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、圖像細(xì)化算法大全(1)#includeStdAfx.h#include#includevoidbeforethin(unsignedchar*ip,unsignedchar*jp,unsignedlonglx,unsignedlongly)unsignedlongi,j;for(i=0;ily;i+)for(j=0;j0)jpi*lx+j=1;elsejpi*lx+j=0;/Hilditch細(xì)化算法/功能:對(duì)圖象進(jìn)行細(xì)化參數(shù):image:代表圖象的一維數(shù)組/lx:圖象寬度/ly:圖象高度/無返回值voidThinnerHilditch(void*image,unsignedlonglx,uns

2、ignedlongly)char*f,*g;charn10;unsignedintcounter;shortk,shori,xx,nrn;unsignedlongi,j;longkk,kk11,kk12,kk13,kk21,kk22,kk23,kk31,kk32,kk33,size;size=(long)lx*(long)ly;g=(char*)malloc(size);if(g=NULL)printf(errorinallocatingmemory!n);return;f=(char*)image;for(i=0;ilx;i+)for(j=0;jly;j+)kk=i*ly+j;if(fkk!

3、=0)fkk=1;gkk=fkk;counter=1;doprintf(%4d*,counter);counter+;shori=0;for(i=0;ilx;i+)for(j=0;jly;j+)kk=i*ly+j;if(fkk0)fkk=0;gkk=fkk;for(i=1;ilx-1;i+)for(j=1;jly-1;j+)kk=i*ly+j;if(fkk!=1)continue;kk11=(i-1)*ly+j-1;kk12=kk11+1;kk13=kk12+1;kk21=i*ly+j-1;kk22=kk21+1;kk23=kk22+1;kk31=(i+1)*ly+j-1;kk32=kk31+

4、1;kk33=kk32+1;if(gkk12&gkk21&gkk23&gkk32)!=0)continue;nrn=gkk11+gkk12+gkk13+gkk21+gkk23+gkk31+gkk32+gkk33;if(nrn=1)fkk22=2;continue;n4=fkk11;n3=fkk12;n2=fkk13;n5=fkk21;n1=fkk23;n6=fkk31;n7=fkk32;n8=fkk33;n9=n1;xx=0;for(k=1;k8;k=k+2)if(!nk)&(nk+1|nk+2)xx+;if(xx!=1)fkk22=2;continue;if(fkk12=-1)fkk12=0

5、;n3=0;xx=0;for(k=1;k8;k=k+2)if(!nk)&(nk+1|nk+2)xx+;if(xx!=1)fkk12=-1;continue;fkk12=-1;n3=-1;if(fkk21!=-1)fkk22=-1;shori=1;continue;fkk21=0;n5=0;xx=0;for(k=1;k8;k=k+2)if(!nk)&(nk+1|nk+2)xx+;if(xx=1)fkk21=-1;fkk22=-1;shori=1;elsefkk21=-1;while(shori);free(g);/Pavlidis細(xì)化算法/功能:對(duì)圖象進(jìn)行細(xì)化參數(shù):image:代表圖象的一維數(shù)組

6、/lx:圖象寬度/ly:圖象高度/無返回值voidThinnerPavlidis(void*image,unsignedlonglx,unsignedlongly)charerase,n8;char*f;unsignedcharbdr1,bdr2,bdr4,bdr5;shortc,k,b;unsignedlongi,j;longkk,kk1,kk2,kk3;f=(char*)image;for(i=1;ilx-1;i+)for(j=1;jly-1;j+)kk=i*ly+j;if(fkk)fkk=1;for(i=0,kk1=0,kk2=ly-1;ilx;i+,kk1+=ly,kk2+=ly)fk

7、k1=0;fkk2=0;for(j=0,kk=(lx-1)*ly;jly;j+,kk+)fj=0;fkk=0;c=5;erase=1;while(erase)c+;for(i=1;ilx-1;i+)for(j=1;jly-1;j+)kk=i*ly+j;if(fkk!=1)continue;kk1=kk-ly-1;kk2=kk1+1;kk3=kk2+1;n3=fkk1;n2=fkk2;n1=fkk3;kk1=kk-1;kk3=kk+1;n4=fkk1;n0=fkk3;kk1=kk+ly-1;kk2=kk1+1;kk3=kk2+1;n5=fkk1;n6=fkk2;n7=fkk3;bdr1=0;fo

8、r(k=0;k=1)bdr1|=0 x80k;if(bdr1&0252)=0252)continue;fkk=2;b=0;for(k=0;kk);if(b=1)fkk=3;if(bdr1&0160)!=0&(bdr1&07)!=0&(bdr1&0210)=0)fkk=3;elseif(bdr1&0301)!=0&(bdr1&034)!=0&(bdr1&042)=0)fkk=3;elseif(bdr1&0202)=0&(bdr1&01)!=0)fkk=3;elseif(bdr1&0240)=0&(bdr1&0100)!=0)fkk=3;elseif(bdr1&050)=0&(bdr1&020)!

9、=0)fkk=3;elseif(bdr1&012)=0&(bdr1&04)!=0)fkk=3;for(i=1;ilx-1;i+)for(j=1;jly-1;j+)kk=i*ly+j;if(!fkk)continue;kk1=kk-ly-1;kk2=kk1+1;kk3=kk2+1;n3=fkk1;n2=fkk2;n1=fkk3;kk1=kk-1;kk2=kk+1;n4=fkk1;n0=fkk3;kk1=kk+ly-1;kk2=kk1+1;kk3=kk2+1;n5=fkk1;n6=fkk2;n7=fkk3;bdr1=bdr2=0;for(k=0;k=1)bdr1|=0 x80k;if(nk=2)b

10、dr2|=0 x80k;if(bdr1=bdr2)fkk=4;continue;if(fkk!=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)fkk=4;elseif(bdr2&040)!=0&(bdr1&02)=0&(bdr1&020)!=0&(bdr1&0100)!=0|(bdr1&020)!=0|(bdr1&0100)!=0)&(bdr1&014)!=0&(bdr1&0201)!=0

11、)fkk=4;elseif(bdr2&010)!=0&(bdr1&0200)=0&(bdr1&04)!=0&(bdr1&020)!=0|(bdr1&04)!=0|(bdr1&020)!=0)&(bdr1&03)!=0&(bdr1&0140)!=0)fkk=4;elseif(bdr2&02)!=0&(bdr1&040)=0&(bdr1&01)!=0&(bdr1&04)!=0|(bdr1&01)!=0|(bdr1&04)!=0)&(bdr1&0300)!=0&(bdr1&030)!=0)fkk=4;for(i=1;ilx-1;i+)for(j=1;jly-1;j+)kk=i*ly+j;if(fkk

12、!=2)continue;kk1=kk-ly-1;kk2=kk1+1;kk3=kk2+1;n3=fkk1;n2=fkk2;n1=fkk3;kk1=kk-1;kk2=kk+1;n4=fkk1;n0=fkk3;kk1=kk+ly-1;kk2=kk1+1;kk3=kk2+1;n5=fkk1;n6=fkk2;n7=fkk3;bdr4=bdr5=0;for(k=0;k=4)bdr4|=0 x80k;if(nk=5)bdr5|=0 x80k;if(bdr4&010)=0)fkk=5;continue;if(bdr4&040)=0&bdr5=0)fkk=5;continue;if(fkk=3|fkk=4)f

13、kk=c;erase=0;for(i=1;ilx-1;i+)for(j=1;jly-1;j+)kk=i*ly+j;if(fkk=2|fkk=5)erase=1;fkk=0;/Rosenfeld細(xì)化算法/功能:對(duì)圖象進(jìn)行細(xì)化參數(shù):image:代表圖象的一維數(shù)組/lx:圖象寬度/ly:圖象高度/無返回值voidThinnerRosenfeld(void*image,unsignedlonglx,unsignedlongly)char*f,*g;charn10;chara5=0,-1,1,0,0;charb5=0,0,0,1,-1;charnrnd,cond,n48,n26,n24,n46,n68,

14、n82,n123,n345,n567,n781;shortk,shori;unsignedlongi,j;longii,jj,kk,kk1,kk2,kk3,size;size=(long)lx*(long)ly;g=(char*)malloc(size);if(g=NULL)printf(errorinalocatingmmeory!n);return;f=(char*)image;for(kk=0l;kksize;kk+)gkk=fkk;doshori=0;for(k=1;k=4;k+)for(i=1;ilx-1;i+)ii=i+ak;for(j=1;jly-1;j+)kk=i*ly+j;i

15、f(!fkk)continue;jj=j+bk;kk1=ii*ly+jj;if(fkk1)continue;kk1=kk-ly-1;kk2=kk1+1;kk3=kk2+1;n3=fkk1;n2=fkk2;n1=fkk3;kk1=kk-1;kk3=kk+1;n4=fkk1;n8=fkk3;kk1=kk+ly-1;kk2=kk1+1;kk3=kk2+1;n5=fkk1;n6=fkk2;n7=fkk3;nrnd=n1+n2+n3+n4+n5+n6+n7+n8;if(nrnd0)if(!cond)continue;gkk=0;shori=1;continue;if(n6=1&n48=0&n1230)i

16、f(!cond)continue;gkk=0;shori=1;continue;if(n8=1&n26=0&n3450)if(!cond)continue;gkk=0;shori=1;continue;if(n4=1&n26=0&n7810)if(!cond)continue;gkk=0;shori=1;continue;if(n5=1&n46=0)if(!cond)continue;gkk=0;shori=1;continue;if(n7=1&n68=0)if(!cond)continue;gkk=0;shori=1;continue;if(n1=1&n82=0)if(!cond)conti

17、nue;gkk=0;shori=1;continue;if(n3=1&n24=0)if(!cond)continue;gkk=0;shori=1;continue;cond=1;if(!cond)continue;gkk=0;shori=1;for(i=0;ilx;i+)for(j=0;jly;j+)kk=i*ly+j;fkk=gkk;while(shori);free(g);0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,

18、1,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0/基于索引表的細(xì)化細(xì)化算法/功能:對(duì)圖象進(jìn)行細(xì)化參數(shù):IpDIBBits:代表圖象的一維數(shù)組/IWidth:圖象高度/IHeight:圖象寬度/無返回值BOOLWINAPIThiningDIBSkeIeton(LPSTRIpDIBBits,LONGIWidth,LONGIHeight)/循環(huán)變量Iongi;I

19、ongj;IongILength;unsignedchardeIetemark256=0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,;

20、/索引表unsignedcharp0,p1,p2,p3,p4,p5,p6,p7;unsignedchar*pmid,*pmidtemp;unsignedcharsum;intchanged;booIbStart=true;ILength=IWidth*IHeight;unsignedchar*pTemp=(unsignedchar*)maIIoc(sizeof(unsignedchar)*IWidth*IHeight);/P0P1P2/P7P3/P6P5P4while(bStart)bStart=false;changed=0;/首先求邊緣點(diǎn)(并行)pmid=(unsignedchar*)lpDIBBits+lWidth+1;memset(pTemp,(BYTE)0,lLength);pmidtemp=(unsignedchar*)pTemp+lWidth+1;for(i=1;ilHeight-1;i+)for(j=1;jlWidth-1;j+)if(*pmid=0)pmid+;pmidtemp+;continue;p3=*(pmid+1);p2=*(pmid+1-lWidth);p1=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論