亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于縫隙碼的區(qū)域填充方法

文檔序號(hào):6469346閱讀:317來源:國(guó)知局

專利名稱::一種基于縫隙碼的區(qū)域填充方法
技術(shù)領(lǐng)域
:本發(fā)明涉及區(qū)域填充,特別是涉及一種基于縫隙碼的區(qū)域填充方法。
背景技術(shù)
:區(qū)域填充是計(jì)算機(jī)圖形學(xué)的基本問題之一。傳統(tǒng)的填充方法主要有奇偶性檢測(cè)和種子填充兩大類,種子填充的缺點(diǎn)是需要棧結(jié)構(gòu),因而需要較大的存儲(chǔ)空間以實(shí)現(xiàn)棧結(jié)構(gòu),而且在有多個(gè)對(duì)象需要填充時(shí),種子點(diǎn)的逐個(gè)選取會(huì)降低效率,在某些復(fù)雜情況下,種子點(diǎn)的選擇非常困難;在奇偶檢測(cè)法中,由于交叉點(diǎn)可能為多重交點(diǎn),會(huì)導(dǎo)致在統(tǒng)計(jì)交叉點(diǎn)數(shù)目時(shí),容易出現(xiàn)錯(cuò)誤,而且水平直線狀的邊緣線也會(huì)導(dǎo)致錯(cuò)誤判斷。為了克服傳統(tǒng)填充方法的不足,人們提出了幾種較好的方法,但都存在需要輔助內(nèi)存較大、耗時(shí)、計(jì)算量較大,或者在對(duì)多連通區(qū)域填充時(shí),存在對(duì)洞的重復(fù)填充問題,導(dǎo)致時(shí)間浪費(fèi),影響效率。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種基于縫隙碼的區(qū)域填充方法。本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn)一種基于縫隙碼的區(qū)域填充方法,其特征在于,包括單鏈填充;多連通區(qū)域或整幅圖像的填充。所述的單鏈填充包括(20)遍歷鏈碼,標(biāo)記邊界的左右像素,并確定其圍線方向;(21)填充區(qū)域內(nèi)部像素;(22)填充邊界像素。所述的多連通區(qū)域或整幅圖像的填充包括(30)遍歷待填充區(qū)域的全部邊界,標(biāo)記所有邊界的L像素和R像素;(31)遍歷待填充區(qū)域的全部邊界,選擇L像素為填充起始點(diǎn),填充區(qū)域;(32)給全部邊界點(diǎn)填色。與現(xiàn)有技術(shù)相比,本發(fā)明方法速度快、容易實(shí)現(xiàn),不需要輔助內(nèi)存空間,能填充任意復(fù)雜圖像區(qū)域,尤其在填充多連通區(qū)域或整幅圖像時(shí),不存在孔洞的重復(fù)填充問題。圖1為方向碼示意圖2為方向碼與區(qū)域輪廓的縫隙碼示意圖;圖3為單鏈輪廓的左右邊界像素示意圖;圖4為左右邊界像素示意圖。具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說明。如圖14所示,一種基于縫隙碼的區(qū)域填充方法,包括單鏈填充;多連通區(qū)域或整幅圖像的填充。所述的單鏈填充包括(20)遍歷鏈碼,標(biāo)記邊界的左右像素,并確定其圍線方向;(21)填充區(qū)域內(nèi)部像素;(22)填充邊界像素。所述的多連通區(qū)域或整幅圖像的填充包括-(30)遍歷待填充區(qū)域的全部邊界,標(biāo)記所有邊界的L像素和R像素;(31)遍歷待填充區(qū)域的全部邊界,選擇L像素為填充起始點(diǎn),填充區(qū)域;(32)給全部邊界點(diǎn)填色。區(qū)域邊界的縫隙碼表示及其性質(zhì)-按逆時(shí)針或順時(shí)針方向沿著圖像邊界像素邊行走一周,依次記錄其方向碼,就得到圖像邊界的縫隙碼(crackcoding),加上起始點(diǎn)坐標(biāo),邊界就可以用縫隙碼唯一確定下來。除非特殊說明,本文給出的縫隙碼都是按逆時(shí)針方向行走的。如圖l為方向碼示意圖,方向碼包括0、1、2、3;如圖2所示,像素頂點(diǎn)坐標(biāo)在uv坐標(biāo)系取值為整數(shù),像素坐標(biāo)在xy坐標(biāo)系下取整數(shù),uv坐標(biāo)系可由xy坐標(biāo)系向左向上平移半個(gè)像素獲得。圖2所示的區(qū)域邊界的縫隙碼可表示為{("0,^)323232303003001001011212322112}。("。,v。)是區(qū)域邊界像素的頂點(diǎn)P在uv坐標(biāo)系下的坐標(biāo)??p隙碼記錄的是封閉的區(qū)域邊界的四方向碼序列,令S0,Sl,S2,S3分別表示縫隙碼中碼值為0、1、2、3的個(gè)數(shù),那么有S(^S2,S1=S3。由區(qū)域邊界的連通性原理,有性質(zhì)l。性質(zhì)l:用水平直線與區(qū)域邊界相交,令M1與M3分別表示水平直線與區(qū)域邊界縫隙碼相交的碼值為1和3的個(gè)數(shù),那么有M1=M3,且方向碼1和方向碼3是交互出現(xiàn)的??p隙碼記錄的是經(jīng)過邊界像素邊的方向碼,起始點(diǎn)為邊界像素的頂點(diǎn)。表1定義了像素頂點(diǎn)坐標(biāo)隨方向碼變化的坐標(biāo)偏移量。<formula>formulaseeoriginaldocumentpage5</formula>表l已知起始點(diǎn)和縫隙碼,根據(jù)表1給出的坐標(biāo)偏移表OFFSETJLUT,可以很容易獲得區(qū)域邊界像素頂點(diǎn)坐標(biāo)。像素坐標(biāo)值與其左上頂點(diǎn)在uv坐標(biāo)系下的坐標(biāo)相等。令",力為邊界像素坐標(biāo),(","為該像素的一個(gè)頂點(diǎn)坐標(biāo),e為以K"為始點(diǎn)的方向碼,那么像素坐標(biāo)",力與","和方向碼e的關(guān)系"力=>^",v,e)如下當(dāng)e=0日寸(I,y)=(",V-1)當(dāng)e=1日寸(X,力=("-l,V-1)當(dāng)e=2日寸(x,力=("-l,v)當(dāng)e=3時(shí)(Jf,y)=縫隙碼表示的邊界輪廓可以看作是一個(gè)多邊形,其角度變化可由表2給出。令w<formula>formulaseeoriginaldocumentpage5</formula>其中4'][刀的值由表2給出。如果"=360那么輪廓為區(qū)域外邊界,否則輪廓為內(nèi)邊界。<table>tableseeoriginaldocumentpage6</column></row><table>表2只考慮經(jīng)過邊界像素的左右邊的方向碼。那么有三種可能若像素的左邊有方向碼3經(jīng)過且其右邊沒有方向碼經(jīng)過,稱該像素為L(zhǎng)像素,若像素的右邊有方向碼1經(jīng)過且其左邊沒有方向碼經(jīng)過,稱該像素為R像素,若邊界像素的左右兩邊都有方向碼經(jīng)過,那么稱像素為L(zhǎng)R像素。單鏈填充用一水平直線與區(qū)域邊界相交,那么水平直線與區(qū)域邊界相交的L像素和R像素個(gè)數(shù)相等,且L像素和R像素相互間隔出現(xiàn),如圖3,由此可知L像素可以看作填充種子點(diǎn),L像素和R像素又滿足奇偶填充原理。對(duì)于單條縫隙碼的填充算法可以描述為首先遍歷縫隙碼,確定邊界的L像素和R像素,并計(jì)算圍線角度,確定圍線方向。第二對(duì)所有的L像素,作為填充起始點(diǎn),對(duì)區(qū)域外邊界,從左向右填充,對(duì)區(qū)域內(nèi)邊界從右向左填充,直到R像素結(jié)束。最后填充邊界像素。算法需要掃描邊界像素頂點(diǎn)3遍,區(qū)域內(nèi)部點(diǎn)一遍。定義圍線縫隙碼類structCrackchain(intuO,vO;〃縫隙碼的起始點(diǎn)longn;〃縫隙碼的長(zhǎng)int*c;〃縫隙碼單鏈填充具體為sampleChainFill(img,w,h,ck,col)其中img為填充圖像,w和h分別為圖像的寬和高,ck為縫隙碼類,col為填充色stepO:用l,r,lr分別表示邊界上的L像素、R像素和LR像素,定義中間變量,并初始化。用SA來統(tǒng)計(jì)鏈碼角度變化,SA=0。stepl:遍歷鏈碼,標(biāo)記邊界的左右像素,并判斷其圍線方向u=ck.u0;v=ck.v0;pc=ck.c[n-l];for(i=0;i<ck.n;i++){nc=ck.c[i];SA+=A[pc][nc];//統(tǒng)計(jì)鏈碼角度變化(x,y)=func(u,v,nc);〃坐標(biāo)變換if(nc==3){〃標(biāo)記邊界上的左右像素if(img[x][y]==r)img[x][y]=lr;elseimg[x][y]=I;}if(nc==1){if(img[x][y]==1)img[x][y]=lr;elseimg[x][y]=r;}pc=nc;u=u+du[nc];v=v+dv[nc];if(SA>0)flg=l;elseflg--l;這里flg^時(shí),邊界為區(qū)域外邊界,否則為內(nèi)邊界。A[i][j]的值由表2給出,以下同。step2:填充區(qū)域內(nèi)部像素u=ck.u0;v-ck.v0;for(i=0;i<ck.n;i++){nc=ek.e[i];(x,y)=flmc(u,v,nc);if(img[x][y]==1){j=x;while(img[j〗[y]!=r){mg,]=col;u=u+du[nc];v=v+dv[nc];step3:填充邊界像素u=ck.u0;v=ck.v0;for(i=0;i<ck.n;i++){nc=ck.c[i];(x,y)=fimc(u,v,nc》img[j][y]=col;u=u+du[nc];v=v+dv[nc];對(duì)整幅圖像填充時(shí),如果圖像區(qū)域都是單連通區(qū)域,采用單鏈填充就能很好的填充了,但是如果圖像中存在多連通區(qū)域時(shí),邊界存在包含關(guān)系,如果用單鏈填充,存在洞的重復(fù)填充問題。另外,對(duì)于復(fù)雜的圖像,當(dāng)獲得的邊界縫隙碼混雜時(shí),利用單鏈填充還會(huì)導(dǎo)致填充混亂??紤]到上面的問題,下面我們給出多連通區(qū)域或整幅圖像的填充算法,算法只需對(duì)區(qū)域內(nèi)像素填充,對(duì)區(qū)域外像素(包括孔洞)不進(jìn)行填充,且對(duì)單連通區(qū)域也適用。多連通區(qū)域或整幅圖像的填充用水平直線與區(qū)域相交,那么水平直線與區(qū)域所有邊界相交的L像素和R像素個(gè)數(shù)相等,且L像素和R像素相互間隔出現(xiàn),如圖4。本實(shí)施例的基本思想是首先遍歷所有鏈碼,確定邊界像素的L像素和R像素。其次,遍歷所有區(qū)域邊界像素,如果像素為L(zhǎng)像素,那么從左向右填充,直到遇到R像素結(jié)束,填充圖像區(qū)域內(nèi)像素點(diǎn)。最后,填充所有區(qū)域邊界像素。具體的實(shí)現(xiàn)如下(其中img為填充圖像,w和h分別為圖像,的寬和高,ca為縫隙碼類數(shù)組,col為填充色)stepl:遍歷所有區(qū)域邊界,標(biāo)記所有邊界的L像素和R像素。for(k=0;k<m;k++){ck=ca[k];u=ck.u0;v=ck.v0;for(i=0;i<ck.n;i++){〃遍歷鏈碼nc=ck.c[i];200810201224.3說明書第7/8頁<formula>formulaseeoriginaldocumentpage9</formula>Step2:遍歷所有區(qū)域邊界,選擇L像素為填充起始點(diǎn)填充圖像區(qū)域。for(k=0;k<m;k++){ck=ca[k];u=ck.uO;v=ck.vO;for(i=0;i<ck.n;i++){nc=ck.c[i];(x,y)二fbnc(u,v,nc);<formula>formulaseeoriginaldocumentpage9</formula>Step3:給所有邊界點(diǎn)填色<formula>formulaseeoriginaldocumentpage9</formula><formula>formulaseeoriginaldocumentpage10</formula>權(quán)利要求1.一種基于縫隙碼的區(qū)域填充方法,其特征在于,包括單鏈填充;多連通區(qū)域或整幅圖像的填充。2.根據(jù)權(quán)利要求1所述的一種基于縫隙碼的區(qū)域填充方法,其特征在于,所述的單鏈填充包括(20)遍歷鏈碼,標(biāo)記邊界的左右像素,并確定其圍線方向;(21)填充區(qū)域內(nèi)部像素;(22)填充邊界像素。3.根據(jù)權(quán)利要求1所述的一種基于縫隙碼的區(qū)域填充方法,其特征在于,所述的多連通區(qū)域或整幅圖像的填充包括(30)遍歷待填充區(qū)域的全部邊界,標(biāo)記所有邊界的L像素和R像素;(31)遍歷待填充區(qū)域的全部邊界,選擇L像素為填充起始點(diǎn),填充區(qū)域;(32)給全部邊界點(diǎn)填色。全文摘要本發(fā)明涉及一種基于縫隙碼的區(qū)域填充方法,包括單鏈填充;多連通區(qū)域或整幅圖像的填充。與現(xiàn)有技術(shù)相比,本發(fā)明方法速度快、容易實(shí)現(xiàn),不需要輔助內(nèi)存空間,能填充任意復(fù)雜圖像區(qū)域,尤其在填充多連通區(qū)域或整幅圖像時(shí),不存在孔洞的重復(fù)填充問題。文檔編號(hào)G06T11/40GK101369347SQ20081020122公開日2009年2月18日申請(qǐng)日期2008年10月15日優(yōu)先權(quán)日2008年10月15日發(fā)明者敏朱,陳優(yōu)廣申請(qǐng)人:華東師范大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
<code id="sfzzp"><wbr id="sfzzp"></wbr></code>