一種基於極坐標的360°全景圖像展開方法與流程
2023-07-01 19:01:01
本發明涉及全景顯示
技術領域:
,尤其是一種基於極坐標的360°全景圖像展開方法。
背景技術:
:現有的360°全景圖像展開方法是每次將圓形魚眼圖像旋轉45°,再對90°的扇形子圖像進行展開,而且需要利用展開後的子圖中將近一半的重疊區域進行拼接。在每個子圖展開過程中,為了使相鄰子圖之間存在一定的重疊區域,需要多計算子圖中一半(大致為R/2)的重疊區域。雖然旋轉展開方法只需要旋轉8次,但是對子圖的拼接同樣需要耗費較大的計算量,而且尋找相似區域的方法魯棒性不夠,如果能夠找到更合適的展開角度,就不需要圖像拼接過程,只需要將展開子圖逐個排列就可以構成全景圖像了。但是在算法的實現過程中依然需要對原始圖像進行多次旋轉,再將每次旋轉之後的扇形子圖進行展開,最後將所有子圖連接成完整的全景圖像,圖像旋轉的過程中仍然需要消耗計算機資源。技術實現要素:本發明提出的一種基於極坐標的360°全景圖像展開方法,不需要對原始圖像進行旋轉,直接採用極坐標變換就可以得到展開後的全景圖像。本發明的技術方案是這樣實現的:一種基於極坐標的360°全景圖像展開方法,其特徵在於,該方法包括以下步驟:步驟1:在下式中,將內圓半徑r1和外圓半徑r2得到展開後的全景圖像的寬度w和高度h;步驟2:計算圓形魚眼圖像中極坐標的極角θ和極半徑ρ的步進Δθ和Δρ,這裡的極角步進Δθ通過整個圓周的弧度2π除以展開後全景圖像的寬度w來獲得;步驟3:為了避免坐標映射之後產生空白像素,這裡採用反向坐標映射,圖像展開後的坐標(i,j)對應圓形魚眼圖像中的極坐標為(ρ,θ);步驟4:利用步驟3求得原始魚眼圖像上的極坐標(ρ,θ),將其轉化成圓形魚眼圖像中的像素坐標(x,y),一般(x,y)不會為整數,所以需要利用圖像插值技術,如雙線性插值或者雙三次插值求得坐標(x,y)對應的灰度值,把它賦給校正後的圖像坐標(i,j),就能得到展開後的全景圖像,其中(x0,y0)為圓形魚眼圖像的中心坐標。本發明通過提供的一種基於極坐標的360°全景圖像展開方法,其有益效果在於:展開過程中不需要對圓形魚眼圖像進行旋轉,重複計算的區域為0,也不需要對展開圖像進行拼接操作,相比90°展開算法,計算過程更加簡潔,重複計算量更少。附圖說明為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1為兩級樹結構的方向濾波器分解結構。具體實施方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。極坐標展開模型如圖1所示,圖(a)為展開之前的魚眼圖像,圖(b)為展開之後的全景圖像。坐標映射的原理:首先求出圖(b)中的點P'(i,j)在圖(a)中的極坐標P(ρ,θ),然後將該極坐標轉換為圖像像素坐標Q(x,y),利用雙線性插值得到Q點的灰度值,再將該灰度值賦值給P'點,就能得到展開後的全景圖像。一種基於極坐標的360°全景圖像展開方法,其特徵在於,該方法包括以下步驟:步驟1:在下式中,將內圓半徑r1和外圓半徑r2得到展開後的全景圖像的寬度w和高度h;步驟2:計算圓形魚眼圖像中極坐標的極角θ和極半徑ρ的步進Δθ和Δρ,這裡的極角步進Δθ通過整個圓周的弧度2π除以展開後全景圖像的寬度w來獲得;步驟3:為了避免坐標映射之後產生空白像素,這裡採用反向坐標映射,圖像展開後的坐標(i,j)對應圓形魚眼圖像中的極坐標為(ρ,θ);步驟4:利用步驟3求得原始魚眼圖像上的極坐標(ρ,θ),將其轉化成圓形魚眼圖像中的像素坐標(x,y),一般(x,y)不會為整數,所以需要利用圖像插值技術,如雙線性插值或者雙三次插值求得坐標(x,y)對應的灰度值,把它賦給校正後的圖像坐標(i,j),就能得到展開後的全景圖像,其中(x0,y0)為圓形魚眼圖像的中心坐標。經過以上計算過程,直接利用極坐標映射和圖像插值技術就可以方便地得到全景展開圖像,不需要對原始圖像進行旋轉等操作,減少了計算過程。而且,基於極坐標展開的方式可以通過設置1r和2r來控制展開的環形區域或者增加參數來控制起止展開角度,增加算法的靈活性和可擴展性。本方法與及90°展示算法的展開效果對比如表1所示。表1展開效果對比表展開算法圖像旋轉次數重複計算範圍尋找相似區域主要算法運算90°展開算法845°×8(R×R)×12乘/除極坐標展開發000三角函數從表1可以看出,本申請採用極坐標展開算法,展開過程中不需要對圓形魚眼圖像進行旋轉,重複計算的區域為0,也不需要對展開圖像進行拼接操作,相比90°展開算法,計算過程更加簡潔,重複計算量更少。極坐標展開算法主要的算數運算涉及到三角函數的計算,這在常見的PC上都不會有問題,但是在一些不支持浮點運算的處理器上會帶來一定的影響。當然,這個問題可以通過查表法或者CORDIC算法來解決。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。當前第1頁1 2 3