两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

快速的圖像旋轉(zhuǎn)方法與流程

文檔序號(hào):11135247閱讀:1242來源:國(guó)知局
快速的圖像旋轉(zhuǎn)方法與制造工藝

本發(fā)明涉及圖像處理及計(jì)算機(jī)圖形學(xué)領(lǐng)域,尤其涉及快速實(shí)現(xiàn)圖像旋轉(zhuǎn)的方法。



背景技術(shù):

圖像旋轉(zhuǎn)作為基本的圖像幾何變換,被廣泛應(yīng)用于圖像融合、圖像拼接等圖像處理領(lǐng)域及汽車電子、無人機(jī)、軍事、遙感等實(shí)際應(yīng)用領(lǐng)域。圖像旋轉(zhuǎn)示意圖如圖1所示。

圖像旋轉(zhuǎn)的公式如下:

其中,θ為旋轉(zhuǎn)角度,(i,j)為原始圖像中的像素坐標(biāo),(xi,j,yi,j)為旋轉(zhuǎn)后(i,j)在旋轉(zhuǎn)圖像中的映射坐標(biāo)。由于采用公式(1)計(jì)算得到的映射坐標(biāo)不一定是整數(shù),因此如果直接映射,在目標(biāo)圖像中會(huì)產(chǎn)生空洞或重合。傳統(tǒng)的圖像旋轉(zhuǎn)方法常采用插值的方法,如最近鄰插值、雙線性插值和雙三次插值等技術(shù)消除空洞,實(shí)現(xiàn)旋轉(zhuǎn)。然而,這些插值方法需要頻繁的浮點(diǎn)乘法、取整運(yùn)算甚至卷積運(yùn)算,大大降低了計(jì)算效率,難以滿足實(shí)際應(yīng)用中的實(shí)時(shí)處理需求。



技術(shù)實(shí)現(xiàn)要素:

為克服現(xiàn)有技術(shù)的不足,針對(duì)傳統(tǒng)圖像旋轉(zhuǎn)方法計(jì)算復(fù)雜,計(jì)算速度慢的問題,本發(fā)明旨在提出一種計(jì)算復(fù)雜度低的快速圖像旋轉(zhuǎn)方法,該方法便于硬件實(shí)現(xiàn),適合實(shí)時(shí)處理。本發(fā)明采用的技術(shù)方案是,快速的圖像旋轉(zhuǎn)方法,利用固定步長(zhǎng)值計(jì)算映射坐標(biāo),并計(jì)算其它像素點(diǎn)的映射坐標(biāo);由于映射坐標(biāo)必須是整數(shù),步長(zhǎng)值根據(jù)旋轉(zhuǎn)角度的正切值采用近似的方法得到,如下,設(shè)步長(zhǎng)值為N,旋轉(zhuǎn)角度為θ,N與tanθ有倒數(shù)關(guān)系:

其中,round代表取整運(yùn)算,步長(zhǎng)值為N,即意味著每隔N個(gè)像素點(diǎn),映射坐標(biāo)變換一行;每隔N行,首列像素的映射坐標(biāo)變換一列。

具體步驟進(jìn)一步細(xì)化如下:

首先由公式(1)計(jì)算出原始圖像首行首列像素的映射坐標(biāo)(x1,1,y1,1):

其中,θ為旋轉(zhuǎn)角度,(i,j)為原始圖像中的像素坐標(biāo),(xi,j,yi,j)為旋轉(zhuǎn)后(i,j)在旋轉(zhuǎn)圖像中的映射坐標(biāo),根據(jù)旋轉(zhuǎn)參數(shù)sinθ,cosθ求得N值,然后,其他像素的映射坐標(biāo)在(x1,1,y1,1)的基礎(chǔ)上根據(jù)步長(zhǎng)值計(jì)算得到:

(1)對(duì)于同一行內(nèi)的像素,每隔N個(gè)像素,像素的映射位置將變換一行,即每當(dāng)mod(i,N)==1時(shí),映射的縱坐標(biāo)yi,j將變化1。對(duì)于逆時(shí)針旋轉(zhuǎn),向上移動(dòng)一行,即yi,j減1,對(duì)于順時(shí)針旋轉(zhuǎn),向下移動(dòng)一行,即yi,j加1;

(2)相應(yīng)地,對(duì)于每行的首列像素,每隔N行,首列像素的映射位置將變換一列,即每當(dāng)mod(j,N)==1時(shí),映射的橫坐標(biāo)xi,j將變化1;對(duì)于逆時(shí)針旋轉(zhuǎn),向右移動(dòng)一列,即xi,j加1,對(duì)于順時(shí)針旋轉(zhuǎn),向左移動(dòng)一列yi,j減1;

(3)如果只按照步驟(1)和(2),對(duì)于順時(shí)針,當(dāng)原始像素坐標(biāo)i,j滿足公式(3)的條件時(shí),像素需要向左移動(dòng)填充空洞;對(duì)于逆時(shí)針,當(dāng)原始像素坐標(biāo)i,j滿足公式(4)的條件時(shí),像素需要向左移動(dòng)填充空洞:

i=k×N2+[N+1-(mod(j-1,N)+1)]×N+1 k=0,1,2,......(3)

i=k×N2+[mod(j-1,N)+1]×N+1 k=0,1,2,......(4)

其中k為自然數(shù)。

本發(fā)明的特點(diǎn)及有益效果是:

1.本發(fā)明采取一種近似的方法,根據(jù)旋轉(zhuǎn)角度的正切值,確定出計(jì)算映射坐標(biāo)的步長(zhǎng)值,只需精確計(jì)算首行首列像素的映射坐標(biāo),然后其它像素的映射坐標(biāo)根據(jù)步長(zhǎng)值得到。這種方法將傳統(tǒng)旋轉(zhuǎn)方法中的浮點(diǎn)運(yùn)算和取整運(yùn)算轉(zhuǎn)化為簡(jiǎn)單的整數(shù)加減法,大大降低了計(jì)算復(fù)雜度,便于硬件實(shí)現(xiàn),能夠快速圖像旋轉(zhuǎn)的效果。

2.本發(fā)明精確計(jì)算出空洞出現(xiàn)的位置,并采用左移像素的方法填充空洞,解決了空洞的問題,充分保留了原始圖像中的所有像素點(diǎn)的信息。

附圖說明:

圖1圖像旋轉(zhuǎn)示意圖。

圖2以不同的點(diǎn)為旋轉(zhuǎn)中心:(a)以圖像外的點(diǎn)為旋轉(zhuǎn)中心;(b)以圖像內(nèi)的點(diǎn)為旋轉(zhuǎn)中心。

圖3左移像素填充空洞。

圖4快速圖像旋轉(zhuǎn)方法的流程圖。

圖5旋轉(zhuǎn)角θ=7.125°時(shí),旋轉(zhuǎn)圖像示意圖。

具體實(shí)施方式

圖像旋轉(zhuǎn)實(shí)際上是像素點(diǎn)映射坐標(biāo)的計(jì)算。由于像素的坐標(biāo)是連續(xù)的,因此相鄰像素的映射坐標(biāo)之間有一定的聯(lián)系性。一幅圖像由多行像素組成,可以先計(jì)算出首行首列像素的映射坐標(biāo),然后其他像素的坐標(biāo)在此基礎(chǔ)上得到。本發(fā)明提出一種利用固定步長(zhǎng)值計(jì)算映射坐標(biāo)的方法,計(jì)算其它像素點(diǎn)的映射坐標(biāo)。由于映射坐標(biāo)必須是整數(shù),步長(zhǎng)值根據(jù)旋轉(zhuǎn)角度的正切值采用近似的方法得到,如下,設(shè)步長(zhǎng)值為N,旋轉(zhuǎn)角度為θ,N與tanθ有倒數(shù)關(guān)系:

其中,round代表取整運(yùn)算。步長(zhǎng)值為N,即意味著每隔N個(gè)像素點(diǎn),映射坐標(biāo)變換一行;每隔N行,首列像素的映射坐標(biāo)變換一列。這種方法只需要計(jì)算一次步長(zhǎng)值,通過將旋轉(zhuǎn)角度近似為某些離散的旋轉(zhuǎn)角度,從而避免了頻繁的浮點(diǎn)計(jì)算。旋轉(zhuǎn)可以以圖像內(nèi)的像素點(diǎn)為旋轉(zhuǎn)中心,也可以以圖像外的點(diǎn)為旋轉(zhuǎn)中心,如圖2所示。提出的方法對(duì)以任意點(diǎn)為旋轉(zhuǎn)中心均適用。具體實(shí)現(xiàn)方法如下:

首先由公式(1)計(jì)算出原始圖像首行首列像素的映射坐標(biāo)(x1,1,y1,1)。并根據(jù)旋轉(zhuǎn)參數(shù)sinθ,cosθ求得N值。然后,其他像素的映射坐標(biāo)在(x1,1,y1,1)的基礎(chǔ)上根據(jù)步長(zhǎng)值計(jì)算得到。旋轉(zhuǎn)后像素點(diǎn)的位置示意圖如圖3所示。

(4)對(duì)于同一行內(nèi)的像素,每隔N個(gè)像素,像素的映射位置將變換一行,即每當(dāng)mod(i,N)==1時(shí),映射的縱坐標(biāo)yi,j將變化1。對(duì)于逆時(shí)針旋轉(zhuǎn),向上移動(dòng)一行,即yi,j減1,對(duì)于順時(shí)針旋轉(zhuǎn),向下移動(dòng)一行,即yi,j加1。

(5)相應(yīng)地,對(duì)于每行的首列像素,每隔N行,首列像素的映射位置將變換一列,即每當(dāng)mod(j,N)==1時(shí),映射的橫坐標(biāo)xi,j將變化1。對(duì)于逆時(shí)針旋轉(zhuǎn),向右移動(dòng)一列,即xi,j加1,對(duì)于順時(shí)針旋轉(zhuǎn),向左移動(dòng)一列yi,j減1。

(6)如果只按照步驟(1)和(2),旋轉(zhuǎn)后的圖像會(huì)產(chǎn)生空洞,如圖3所示。本發(fā)明采用向左移動(dòng)像素填充空洞的方式消除空洞。經(jīng)過精確計(jì)算,對(duì)于順時(shí)針,當(dāng)原始像素坐標(biāo)i,j滿足公式(3)的條件時(shí),像素需要向左移動(dòng)填充空洞;對(duì)于逆時(shí)針,當(dāng)原始像素坐標(biāo)i,j滿足公式(4)的條件時(shí),像素需要向左移動(dòng)填充空洞。

i=k×N2+[N+1-(mod(j-1,N)+1)]×N+1 k=0,1,2,......(3)

i=k×N2+[mod(j-1,N)+1]×N+1 k=0,1,2,......(4)

圖4為本發(fā)明提出的快速圖像旋轉(zhuǎn)方法的流程圖。可以看出,整個(gè)過程中,除了計(jì)算N值和首行首列像素的映射坐標(biāo)需要用乘法和取整運(yùn)算外,其它像素的映射坐標(biāo)全部由加減法得到。而且每個(gè)像素映射坐標(biāo)的計(jì)算只需要兩次整數(shù)加法或減法運(yùn)算,而按照公式(1)直接計(jì)算則需要四次浮點(diǎn)乘法,兩次浮點(diǎn)加法和兩次取整運(yùn)算。因此,本發(fā)明大大降低了計(jì)算復(fù)雜度和計(jì)算量。

如圖5所示,以圖像左上角第一個(gè)像素點(diǎn)為旋轉(zhuǎn)中心,以tanθ=1/8,即逆時(shí)針旋轉(zhuǎn)7.125°為例給出本發(fā)明的一種實(shí)施方式。此時(shí)N值為8,首列像素的映射坐標(biāo)(x1,1,y1,1)=(round(0.8682),round(1.1163))=(1,1)。一行內(nèi)的像素,每當(dāng)mod(j,8)==1時(shí),即第9,17,25……個(gè)像素的映射位置都需要向上移動(dòng)一行;每隔8行,即第9,17,25……行的首列像素的映射位置也需要向右移動(dòng)一列。而當(dāng)i=64k+[mod(j-1,8)+1]×8+1時(shí),像素向左移動(dòng)填充空洞。這樣,采用基于步長(zhǎng)值累加的方式計(jì)算每個(gè)原始像素的映射坐標(biāo),然后將原始像素值映射到該坐標(biāo)處即可得到旋轉(zhuǎn)后的圖像。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
安徽省| 辉县市| 普定县| 巩义市| 福鼎市| 丹凤县| 桐柏县| 陈巴尔虎旗| 香港 | 汝阳县| 岳池县| 精河县| 固安县| 香格里拉县| 磐石市| 宣城市| 卢氏县| 明水县| 鹤岗市| 巢湖市| 景德镇市| 南平市| 黄浦区| 五原县| 武强县| 卢氏县| 尼勒克县| 泾阳县| 綦江县| 即墨市| 扎鲁特旗| 方山县| 阿瓦提县| 疏勒县| 固始县| 吉首市| 全州县| 驻马店市| 上林县| 乳山市| 岳阳县|