本發(fā)明涉及圖像處理領(lǐng)域,更具體地,涉及隨圖像中關(guān)鍵點移動的自適應(yīng)貼圖方法和系統(tǒng)。
背景技術(shù):
隨著攝影技術(shù)和計算機(jī)應(yīng)用的發(fā)展,在視頻圖像上進(jìn)行貼圖變得越來越普遍,所謂貼圖就是在圖像中的特定部位加上動態(tài)貼圖的效果,以人臉為例,特定部位可以指眼睛、鼻子或嘴巴,現(xiàn)有的貼圖方法僅僅將貼圖放置在畫面中的特定位置,當(dāng)特定位置的發(fā)生變化時,雖然貼圖的位置也隨之變化,但由于沒有考慮特定位置的顯示比例發(fā)生了變化,導(dǎo)致貼圖的形狀會發(fā)生一定程度的扭曲,使得貼圖的顯示效果大打折扣。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種克服上述問題或者至少部分地解決上述問題的隨圖像中關(guān)鍵點移動的自適應(yīng)貼圖的方法和系統(tǒng)。
根據(jù)本發(fā)明的一個方面,提供一種隨圖像中關(guān)鍵點移動的自適應(yīng)貼圖的方法,包括:
s1、定位圖像中關(guān)鍵物體上關(guān)鍵點的位置,根據(jù)所述關(guān)鍵點移動后的位置變化,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,獲得對應(yīng)該任意一點的旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo);
s2、根據(jù)關(guān)鍵點移動后的坐標(biāo)與貼圖的縮放系數(shù),獲得位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo);
s3、根據(jù)所述位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)、關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得貼圖采樣坐標(biāo),并在所述貼圖采樣坐標(biāo)上顯示貼圖。
根據(jù)本發(fā)明的另一個方面,提供一種隨圖像中關(guān)鍵點移動的自適應(yīng)貼圖系統(tǒng),包括:
轉(zhuǎn)換坐標(biāo)裝置,定位圖像中關(guān)鍵物體上關(guān)鍵點的位置,根據(jù)所述關(guān)鍵點移動后的位置變化,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,獲得對應(yīng)該任意一點的旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo);
附近坐標(biāo)生成裝置,根據(jù)關(guān)鍵點移動后的坐標(biāo)與貼圖的縮放系數(shù),獲得位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo);
貼圖采樣坐標(biāo)獲得裝置,根據(jù)所述位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)、關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得貼圖采樣坐標(biāo),并在所述貼圖采樣坐標(biāo)上顯示貼圖。
本申請?zhí)岢鲆环N隨圖像中關(guān)鍵點移動的自適應(yīng)貼圖方法和系統(tǒng),通過定位圖像中關(guān)鍵物體上關(guān)鍵點的位置,根據(jù)所述關(guān)鍵點移動后的位置變化,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,得到對應(yīng)該點的旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo),確保圖像上的點都隨關(guān)鍵點的位置變化而同步移動,再根據(jù)關(guān)鍵點移動后的坐標(biāo)與貼圖的縮放系數(shù),篩選位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo),最后結(jié)合關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得顯示貼圖的貼圖采樣坐標(biāo),本發(fā)明使得在圖像上關(guān)鍵點移動的情況下,貼圖自適應(yīng)地進(jìn)行移動,并且不改變原有的顯示比例,提高了用戶的體驗。
附圖說明
圖1為本發(fā)明實施例的一種隨圖像中關(guān)鍵點移動的自適應(yīng)貼圖方法的流程圖;
圖2為本發(fā)明實施例中步驟s1的流程圖;
圖3為本發(fā)明實施例中步驟s2的流程示意圖;
圖4為本發(fā)明實施例的一種隨圖像中關(guān)鍵點移動的自適應(yīng)貼圖系統(tǒng)的框圖;
圖5為本發(fā)明實施例中轉(zhuǎn)換模塊的結(jié)構(gòu)框圖。
具體實施方式
下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進(jìn)一步詳細(xì)描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
為了克服現(xiàn)有技術(shù)中,貼圖不能隨人臉的旋轉(zhuǎn)而自適應(yīng)旋轉(zhuǎn)的問題,本發(fā)明提供了一種能夠隨人臉旋轉(zhuǎn)的自適應(yīng)旋轉(zhuǎn)的貼圖方法。
圖1示出了本發(fā)明實施例的一種隨人臉旋轉(zhuǎn)的自適應(yīng)貼圖方法的流程圖,如圖1可知,本方法包括:
s1、定位圖像中關(guān)鍵物體上關(guān)鍵點的位置,根據(jù)所述關(guān)鍵點移動后的位置變化,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,獲得對應(yīng)該任意一點的旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo);
s2、根據(jù)關(guān)鍵點移動后的坐標(biāo)與貼圖的縮放系數(shù),獲得位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo);
s3、根據(jù)所述位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)、關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得貼圖采樣坐標(biāo),并在所述貼圖采樣坐標(biāo)上顯示貼圖。
本申請?zhí)岢鲆环N隨圖像中關(guān)鍵點移動的自適應(yīng)貼圖方法和系統(tǒng),通過定位圖像中關(guān)鍵物體上關(guān)鍵點的位置,根據(jù)所述關(guān)鍵點移動后的位置變化,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,得到對應(yīng)該點的轉(zhuǎn)換后的坐標(biāo),再根據(jù)關(guān)鍵點移動后的坐標(biāo)與貼圖的縮放系數(shù),篩選位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo),最后結(jié)合關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得顯示貼圖的貼圖采樣坐標(biāo),本發(fā)明使得在圖像上關(guān)鍵點移動的情況下,貼圖自適應(yīng)地進(jìn)行移動,并且不改變原有的顯示比例,提高了用戶的體驗。
圖2示出了本發(fā)明實施例中步驟s1的流程圖,包括:
s1.1、獲取圖像的寬高比,定位圖像中關(guān)鍵物體上關(guān)鍵點的位置。
需要注意的是,由于常規(guī)圖像的形狀均為長方形,如大部分視頻的寬高比為16:9、4:3、2:1,因此,當(dāng)圖像上的坐標(biāo)發(fā)生旋轉(zhuǎn)時,必然會發(fā)生扭曲,最顯著的是在有手機(jī)觀看視頻時,手機(jī)在橫屏模式下或豎屏模型下,字幕上字的寬度不同,因此,為了保證貼圖在旋轉(zhuǎn)過程中的形狀保持不變,本實施例考慮基于圖像的寬高比對任意一點的坐標(biāo)進(jìn)行縮放。
s1.2、獲取關(guān)鍵點移動的距離以及關(guān)鍵物體的轉(zhuǎn)動角度。
s1.3、根據(jù)圖像的寬高比、關(guān)鍵點移動的距離以及關(guān)鍵物體的轉(zhuǎn)動角度,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,獲得對應(yīng)該任意一點的旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo)。
需要注意的是,將圖像的坐標(biāo)稱之為世界坐標(biāo)系,將圖像中可移動的關(guān)鍵物體所在的坐標(biāo)系稱之為物體坐標(biāo)系,貼圖雖然位于圖像的坐標(biāo)系中,但貼圖又始終跟隨物體運(yùn)動,相當(dāng)于與物體的坐標(biāo)系具有聯(lián)系,因此為了保證貼圖的旋轉(zhuǎn)適應(yīng)兩個坐標(biāo)系間的轉(zhuǎn)換,需要根據(jù)圖像的寬高比、關(guān)鍵點移動的距離以及關(guān)鍵物體的轉(zhuǎn)動角度,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換。
出于使描述清晰易懂的考慮,以下實施例中的關(guān)鍵物體均以人臉為例,但不用來限制本發(fā)明的范圍。
在一個實施例中,步驟s1.3進(jìn)一步包括:
s1.3.1、對圖像上的任意一點,根據(jù)圖像的寬高比,對該點的坐標(biāo)進(jìn)行縮放,獲得縮放后的坐標(biāo);
s1.3.2、將旋轉(zhuǎn)中心點的坐標(biāo)由原點坐標(biāo)平移至所述關(guān)鍵點的坐標(biāo),并根據(jù)關(guān)鍵點的移動距離對縮放后的坐標(biāo)進(jìn)行平移,獲得第一次平移后的坐標(biāo)。
需要注意的是,如果一個圖形d繞某點o旋轉(zhuǎn)α°后,得到的新圖形與原圖形完全重合,稱o為圖形d的旋轉(zhuǎn)中心點。為了保證貼圖能夠以某個特定位置進(jìn)行旋轉(zhuǎn),需要將旋轉(zhuǎn)中心平移至特定位置,以保證旋轉(zhuǎn)后的圖像與原圖像完全重合,在本發(fā)明的應(yīng)用場景下,旋轉(zhuǎn)中心點即為關(guān)鍵點,所謂的關(guān)鍵點,簡單的說,就是貼圖需要始終對齊的點,以在人的眼睛上進(jìn)行貼圖為例,關(guān)鍵點可以是人的眼睛的區(qū)域的中心點(假設(shè)這一點是瞳孔的坐標(biāo))。顯然,本實施例中所述旋轉(zhuǎn)中心點是指圖像中人臉移動后的關(guān)鍵點,同樣以上述舉例來說,就是人臉移動后瞳孔的坐標(biāo)。當(dāng)然,本發(fā)明并不局限于對人眼進(jìn)行貼圖,本發(fā)明同樣適用于對人臉其他部位,例如鼻子、嘴巴或者眉毛的貼圖,在此不做贅述。
s1.3.3、根據(jù)關(guān)鍵物體的轉(zhuǎn)動角度以及旋轉(zhuǎn)中心點的坐標(biāo),對該第一次平移后的坐標(biāo)進(jìn)行旋轉(zhuǎn),獲得旋轉(zhuǎn)后的坐標(biāo)。
需要注意的是,人臉的旋轉(zhuǎn)角度可通過人臉上關(guān)鍵點的位置計算出來,例如,計算鼻梁與水平方向x軸的角度,在此不再詳細(xì)給出計算公式。因此,為了保證旋轉(zhuǎn)后的坐標(biāo)與人臉的旋轉(zhuǎn)角度一致且形狀不發(fā)生改變,本實施例通過根據(jù)人臉的旋轉(zhuǎn)角度以及旋轉(zhuǎn)中心點的坐標(biāo),對該第一次平移后的坐標(biāo)進(jìn)行旋轉(zhuǎn)來獲得。
s1.3.4、將旋轉(zhuǎn)中心點的坐標(biāo)由所述關(guān)鍵點的坐標(biāo)平移回原點坐標(biāo),并根據(jù)旋轉(zhuǎn)中心點的移動距離對縮放后的坐標(biāo)進(jìn)行平移,獲得第二次平移后的坐標(biāo)。
s1.3.5、將所述第二次平移后的坐標(biāo)縮放回原比例,獲得所述轉(zhuǎn)換后的坐標(biāo)。
需要注意的是,在完成第二次平移后,將坐標(biāo)縮放為原比例,即實現(xiàn)了貼圖的正確顯示。
在一個實施例中,步驟s1.3進(jìn)一步包括:
s1.3.1、對于圖像上的任意一點,將該點的坐標(biāo)(x,y)轉(zhuǎn)換為齊次坐標(biāo)(x,y,1),基于圖像的寬高比r,對該齊次坐標(biāo)進(jìn)行縮放,獲得縮放后的坐標(biāo)(r*x,y,1)。
需要注意的,齊次坐標(biāo)就是將一個原本是n維的向量用一個n+1維向量來表示。例如,二維點(x,y)的齊次坐標(biāo)表示為(hx,hy,h)。由此可以看出,一個向量的齊次表示是不唯一的,齊次坐標(biāo)的h取不同的值都表示的是同一個點,比如齊次坐標(biāo)(8,4,2)、(4,2,1)表示的都是二維點(4,2)。引入齊次坐標(biāo)的目的主要是合并矩陣運(yùn)算中的乘法和加法,表示為p'=p*m的形式。即它提供了用矩陣運(yùn)算把二維、三維甚至高維空間中的一個點集從一個坐標(biāo)系變換到另一個坐標(biāo)系的有效方法。
縮放后坐標(biāo)用矩陣m1表示為:
s1.3.2、將旋轉(zhuǎn)中心點的坐標(biāo)由原點坐標(biāo)(0,0)平移至所述關(guān)鍵點的坐標(biāo)(dx,dy),并根據(jù)關(guān)鍵點的移動距離對縮放后的坐標(biāo)進(jìn)行平移,獲得第一次平移后的坐標(biāo)(r*x+dx/r,y+dy,1)。
需要注意的是,在二維坐標(biāo)中,原旋轉(zhuǎn)中心點的坐標(biāo)為原點坐標(biāo)(0,0),假設(shè)平移后的坐標(biāo)為(dx,dy),在x軸方向平移了sx個單位,在y軸方向平移了sy個單位,定義[x,y]為變換前坐標(biāo),[x,y]為變換后坐標(biāo)。則:x=x+sx;y=y(tǒng)+sy;用矩陣表示:
應(yīng)用到本實施例中,第一次平移后的坐標(biāo)用矩陣m2表示為:
s1.3.3、根據(jù)關(guān)鍵物體的轉(zhuǎn)動角度a以及旋轉(zhuǎn)中心點的坐標(biāo),對該第一次平移后的坐標(biāo)進(jìn)行旋轉(zhuǎn),獲得旋轉(zhuǎn)后的坐標(biāo):((r*x+dx/r)*cosa-(y+dy)*sina,(r*x+dx/r)*sina-(y+dy)*cosa,1)。
需要注意的是,設(shè)某點與原點連線和x軸夾角為b度,以原點為圓心,逆時針轉(zhuǎn)過a度,原點與該點連線長度為r。[x,y]為變換前坐標(biāo),[x,y]為變換后坐標(biāo)。則:
x=r*cos(b);y=r*sin(b);
x=r*cos(a+b)=r*cos(a)*cos(b)-r*sin(a)*sin(b)=x*cos(a)-y*sin(a);
y=r*sin(a+b)=r*sin(a)*cos(b)+r*cos(a)*sin(b)=x*sin(a)+y*cos(a);
用矩陣表示:
應(yīng)用到本實施例中,旋轉(zhuǎn)后的坐標(biāo)用矩陣m3表示為:
s1.3.4、將旋轉(zhuǎn)中心點的坐標(biāo)由所述關(guān)鍵點的坐標(biāo)平移至原點坐標(biāo),并根據(jù)旋轉(zhuǎn)中心點平移距離對旋轉(zhuǎn)后的坐標(biāo)進(jìn)行平移,獲得第二次平移后的坐標(biāo):((r*x+dx/r)*cosa-(y+dy)*sina-dx/r,(r*x+dx/r)*sina-(y+dy)*cosa-dy,1)。
需要注意的是,第二次平移后的坐標(biāo)用矩陣m4表示為:
s1.3.5、將所述第二次平移后的坐標(biāo)縮放回原比例,獲得所述轉(zhuǎn)換后的坐標(biāo):((x+dx/r2)*cosa-(y+dy)*sina-dx/r2,(x+dx/r2)*sina-(y+dy)*cosa-dy)。
需要注意的是,轉(zhuǎn)換后的坐標(biāo)用矩陣m5表示為:
圖3示出了本發(fā)明實施例中步驟s2的流程示意圖,如圖3可知,步驟s2包括:
s2.1、基于關(guān)鍵物體的縱向長度、貼圖寬度以及圖像的寬度,獲得貼圖在x軸的縮放系數(shù),基于關(guān)鍵物體的縱向長度、貼圖高度以及圖像的高度,獲得貼圖在y軸的縮放系數(shù);
s2.2、對于任意一個旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo),定義該旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo)為(dstx,dsty),關(guān)鍵點的坐標(biāo)為(centerx,centery),當(dāng)該旋轉(zhuǎn)后的坐標(biāo)滿足以下條件:(centerx-resizex*0.5)<dstx≤(centerx+resizex*0.5)且(centery–resizey*0.5)<dsty≤(centery+resizey*0.5),則將該旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo)作為位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)。
在一個可選實施例中,貼圖在x軸的縮放系數(shù)resizex的表達(dá)式為:resizex=l*w/(w*r);貼圖在y軸的縮放系數(shù)resizey的表達(dá)式為:resizey=l*h/(h*r);
其中,l表示關(guān)鍵物體的縱向長度的長度,例如人臉的長度,w表示貼圖的寬度,h表示貼圖的高度,r表示顯示系數(shù),w表示圖像的寬度,h表示圖像的高度。
在一個可選實施例中,根據(jù)所述位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)、關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得貼圖采樣坐標(biāo)的步驟,進(jìn)一步包括:
定義位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)為(nearx,neary),關(guān)鍵點坐標(biāo)為(centerx,centery),貼圖在x軸的縮放系數(shù)resizex,貼圖在y軸的縮放系數(shù)resizey,貼圖采樣坐標(biāo)為(coordx,coordy),則:
coordx=(nearx-centerx+resizex*0.5)/resizex;
coordy=(neary-centery+resizey*0.5)/resizey。
圖4示出了本發(fā)明實施例的一種隨圖像中關(guān)鍵點移動的自適應(yīng)貼圖系統(tǒng)的框圖,包括:
轉(zhuǎn)換坐標(biāo)裝置,定位圖像中關(guān)鍵物體上關(guān)鍵點的位置,根據(jù)所述關(guān)鍵點移動后的位置變化,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,獲得對應(yīng)該任意一點的旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo);
附近坐標(biāo)生成裝置,根據(jù)關(guān)鍵點移動后的坐標(biāo)與貼圖的縮放系數(shù),獲得位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo);
貼圖采樣坐標(biāo)獲得裝置,根據(jù)所述位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)、關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得貼圖采樣坐標(biāo),并在所述貼圖采樣坐標(biāo)上顯示貼圖。
需要注意的是,本實施例通過定位圖像中關(guān)鍵物體上關(guān)鍵點的位置,根據(jù)所述關(guān)鍵點移動后的位置變化,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,得到對應(yīng)該點的旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo),確保圖像上的點都隨關(guān)鍵點的位置變化而同步移動,再根據(jù)關(guān)鍵點移動后的坐標(biāo)與貼圖的縮放系數(shù),篩選位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo),最后結(jié)合關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得顯示貼圖的貼圖采樣坐標(biāo),本發(fā)明使得在圖像上關(guān)鍵點移動的情況下,貼圖自適應(yīng)地進(jìn)行移動,并且不改變原有的顯示比例,提高了用戶的體驗。
在一個實施例中,轉(zhuǎn)換坐標(biāo)裝置包括:
定位模塊,用于獲取圖像的寬高比,定位圖像中關(guān)鍵物體上關(guān)鍵點的位置;
需要注意的是,由于常規(guī)圖像的形狀均為長方形,如大部分視頻的寬高比為16:9、4:3、2:1,因此,當(dāng)圖像上的坐標(biāo)發(fā)生旋轉(zhuǎn)時,必然會發(fā)生扭曲,最顯著的是在有手機(jī)觀看視頻時,手機(jī)在橫屏模式下或豎屏模型下,字幕上字的寬度不同,因此,為了保證貼圖在旋轉(zhuǎn)過程中的形狀保持不變,本實施例考慮基于貼圖的寬高比對任意一點的坐標(biāo)進(jìn)行縮放。
獲取關(guān)鍵點參數(shù)模塊、用于獲取關(guān)鍵點移動的距離以及關(guān)鍵物體的轉(zhuǎn)動角度;以及
轉(zhuǎn)換模塊,用于根據(jù)圖像的寬高比、關(guān)鍵點移動的距離以及關(guān)鍵物體的轉(zhuǎn)動角度,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,獲得對應(yīng)該任意一點的轉(zhuǎn)換后的坐標(biāo)。
需要注意的是,將圖像的坐標(biāo)稱之為世界坐標(biāo)系,將圖像中可移動的關(guān)鍵物體所在的坐標(biāo)系稱之為物體坐標(biāo)系,貼圖雖然位于圖像的坐標(biāo)系中,但貼圖又始終跟隨物體運(yùn)動,相當(dāng)于與物體的坐標(biāo)系具有聯(lián)系,因此為了保證貼圖的旋轉(zhuǎn)適應(yīng)兩個坐標(biāo)系間的轉(zhuǎn)換,需要根據(jù)圖像的寬高比、關(guān)鍵點移動的距離以及關(guān)鍵物體的轉(zhuǎn)動角度,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換。
圖5示出了本發(fā)明實施例中轉(zhuǎn)換模塊的結(jié)構(gòu)框圖,包括:
第一縮放單元,用于對圖像上的任意一點,根據(jù)圖像的寬高比,對該點的坐標(biāo)進(jìn)行縮放,獲得縮放后的坐標(biāo)。
第一平移單元,用于將旋轉(zhuǎn)中心點的坐標(biāo)由原點坐標(biāo)平移至所述關(guān)鍵點的坐標(biāo),并根據(jù)關(guān)鍵點的移動距離對縮放后的坐標(biāo)進(jìn)行平移,獲得第一次平移后的坐標(biāo)。
需要注意的是,如果一個圖形d繞某點o旋轉(zhuǎn)α°后,得到的新圖形與原圖形完全重合,稱d為旋轉(zhuǎn)對稱圖形,稱o為旋轉(zhuǎn)對稱圖形d的旋轉(zhuǎn)中心點。為了保證貼圖能夠以某個特定位置進(jìn)行旋轉(zhuǎn),需要將旋轉(zhuǎn)中心平移至特定位置,以保證旋轉(zhuǎn)后的圖像與原圖像完全重合,在本發(fā)明的應(yīng)用場景下,旋轉(zhuǎn)中心點即為關(guān)鍵點,所謂的關(guān)鍵點,簡單的說,就是貼圖需要始終對齊的點,以在人的眼睛上進(jìn)行貼圖為例,關(guān)鍵點可以是人的眼睛的區(qū)域的中心點(假設(shè)這一點是瞳孔的坐標(biāo))。顯然,本實施例中所述旋轉(zhuǎn)中心點是指圖像中人臉移動后的關(guān)鍵點,同樣以上述舉例來說,就是人臉移動后瞳孔的坐標(biāo)。當(dāng)然,本發(fā)明并不局限于對人眼進(jìn)行貼圖,本發(fā)明同樣適用于對人臉其他部位,例如鼻子、嘴巴或者眉毛的貼圖,在此不做贅述。
旋轉(zhuǎn)單元,用于根據(jù)關(guān)鍵物體的轉(zhuǎn)動角度以及旋轉(zhuǎn)中心點的坐標(biāo),對該第一次平移后的坐標(biāo)進(jìn)行旋轉(zhuǎn),獲得旋轉(zhuǎn)后的坐標(biāo)。
需要注意的是,人臉的旋轉(zhuǎn)角度可通過人臉上關(guān)鍵點的位置計算出來,例如,計算鼻梁與水平方向x軸的角度,在此不再詳細(xì)給出計算公式。因此,為了保證旋轉(zhuǎn)后的坐標(biāo)與人臉的旋轉(zhuǎn)角度一致且形狀不發(fā)生改變,本實施例通過根據(jù)人臉的旋轉(zhuǎn)角度以及旋轉(zhuǎn)中心點的坐標(biāo),對該第一次平移后的坐標(biāo)進(jìn)行旋轉(zhuǎn)來獲得。
第二平移單元,用于將旋轉(zhuǎn)中心點的坐標(biāo)由所述關(guān)鍵點的坐標(biāo)平移回原點坐標(biāo),并根據(jù)旋轉(zhuǎn)中心點的移動距離對縮放后的坐標(biāo)進(jìn)行平移,獲得第二次平移后的坐標(biāo);以及
第二縮放單元,用于將所述第二次平移后的坐標(biāo)縮放回原比例,獲得所述轉(zhuǎn)換后的坐標(biāo)。
在一個實施例中,附近坐標(biāo)生成裝置包括:
縮放系數(shù)獲取模塊,用于基于關(guān)鍵物體的縱向長度、貼圖寬度以及圖像的寬度,獲得貼圖在x軸的縮放系數(shù),基于關(guān)鍵物體的縱向長度、貼圖高度以及圖像的高度,獲得貼圖在y軸的縮放系數(shù);
附件坐標(biāo)獲取模塊,用于對于任意一個旋轉(zhuǎn)后的坐標(biāo),定義該旋轉(zhuǎn)后的坐標(biāo)為(dstx,dsty),關(guān)鍵點的坐標(biāo)為(centerx,centery),當(dāng)該旋轉(zhuǎn)后的坐標(biāo)滿足以下條件:(centerx-resizex*0.5)<dstx≤(centerx
+resizex*0.5)且(centery–resizey*0.5)<dsty≤(centery+resizey*0.5),則將該旋轉(zhuǎn)后的坐標(biāo)作為位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)。
在一個具體實施例中,所述貼圖采樣坐標(biāo)獲得裝置進(jìn)一步用于:
定義位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)為(nearx,neary),貼圖采樣坐標(biāo)為(coordx,coordy),則:
coordx=(nearx-centerx+resizex*0.5)/resizex;
coordy=(neary-centery+resizey*0.5)/resizey。
在一個實施例中,本發(fā)明公開一種計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品包括存儲在非暫態(tài)計算機(jī)可讀存儲介質(zhì)上的計算機(jī)程序,所述計算機(jī)程序包括程序指令,當(dāng)所述程序指令被計算機(jī)執(zhí)行時,計算機(jī)能夠執(zhí)行上述各方法實施例所提供的方法,例如包括:
s1、定位圖像中關(guān)鍵物體上關(guān)鍵點的位置,根據(jù)所述關(guān)鍵點移動后的位置變化,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,獲得對應(yīng)該任意一點的旋轉(zhuǎn)矩陣轉(zhuǎn)換后的坐標(biāo);
s2、根據(jù)關(guān)鍵點移動后的坐標(biāo)與貼圖的縮放系數(shù),獲得位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo);
s3、根據(jù)所述位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)、關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得貼圖采樣坐標(biāo),并在所述貼圖采樣坐標(biāo)上顯示貼圖。
在一個實施例中,本發(fā)明公開了一種非暫態(tài)計算機(jī)可讀存儲介質(zhì),所述非暫態(tài)計算機(jī)可讀存儲介質(zhì)存儲計算機(jī)指令,所述計算機(jī)指令使所述計算機(jī)執(zhí)行上述各方法實施例所提供的方法,例如包括:
s1、定位圖像中關(guān)鍵物體上關(guān)鍵點的位置,根據(jù)所述關(guān)鍵點移動后的位置變化,對圖像上的任意一點進(jìn)行旋轉(zhuǎn)矩陣轉(zhuǎn)換,獲得對應(yīng)該任意一點的轉(zhuǎn)換后的坐標(biāo);
s2、根據(jù)關(guān)鍵點移動后的坐標(biāo)與貼圖的縮放系數(shù),獲得位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo);
s3、根據(jù)所述位于關(guān)鍵點移動后的位置附近一定范圍的坐標(biāo)、關(guān)鍵點的坐標(biāo)以及貼圖的縮放系數(shù),獲得貼圖采樣坐標(biāo),并在所述貼圖采樣坐標(biāo)上顯示貼圖。
最后,本申請的方法僅為較佳的實施方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。