[發明專利]一種基于opengl的720全景展開監控方法有效
| 申請號: | 201811202840.0 | 申請日: | 2018-10-16 |
| 公開(公告)號: | CN109461116B | 公開(公告)日: | 2023-04-28 |
| 發明(設計)人: | 王錦文 | 申請(專利權)人: | 浩云科技股份有限公司 |
| 主分類號: | G06T3/00 | 分類號: | G06T3/00;G06T3/40;G06T5/00;G06T5/50;G06T7/40;G06T7/80;G06T7/90 |
| 代理公司: | 廣州三環專利商標代理有限公司 44202 | 代理人: | 顏希文;宋靜娜 |
| 地址: | 510000 廣東省廣州市番禺區東環*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 opengl 720 全景 展開 監控 方法 | ||
1.一種基于opengl的720全景展開監控方法,其特征在于:包括以下步驟,a、創建蒙版圖像;b、建立數學模型計算頂點坐標和紋理坐標;c、圖像渲染顯示;d、熱點區域添加與操作;
步驟a中創建蒙版圖像,為使用棋盤格針對相機標定后獲取的雙魚眼鏡頭的內參,接下來假設左鏡頭獲取的內參為左鏡頭的畸變參數為(kl1?kl2?kl3kl4),其中flx,fly分別為圖像U軸和V軸上的焦距尺度因子,(Clx?Cly)為圖像的主點坐標;右鏡頭的內參為右鏡頭的畸變參數為(kr1?kr2?kr3?kr4),取作為圖像融合部分的權重,可記為[α,β];根據魚眼圖像的投影模型,使用多項式的方式計算投影函數,投影函數為:r=theta+k1·theta3+k2·theta5+k·theta7+k4·theta9,其中theta為入射角,(k1?k2?k3?k4)為鏡頭畸變參數,根據此公式分別計算取最小融合角α時左右鏡頭的對應的魚眼圖像中的點到畸變中心的距離,對左鏡頭距離記為(Xl,Yl),右鏡頭距離為(Xr,Yr),計算公式為:將得到兩個橢圓內部區域填充為白色;然后取[α,β]部分計算權重,計算方法為,從α角開始計算,每次迭代增量設置為T,直到β停止計算;假設此時的視角為φ,則權重公式計算為:按照投影函數公式分別計算左右鏡頭投影球面點到投影中心的距離記為(r1,r2);由魚眼圖像中的點到畸變中心的距離計算公式,得到此時左右鏡頭對應的圖像點到畸變中心點的距離,分別計算左右鏡頭圍繞一圈的像素點,將w賦值給該像素點作為此像素點對應的權重;像素點的計算公式為:其中λ為圖像中該像素點與圖像中心連線與x軸正方向的夾角,得到具有權重的蒙版圖;
步驟b中建立數學模型計算頂點坐標和紋理坐標,其中球的經度為360度,緯度為180度,將經度分為nw等分,緯度分為nh等分,
球面坐標公式為:
紋理坐標計算公式為:
其中R為展開的球半徑,alpha為經度角,theta為緯度角,w,h分別為原圖像的寬和高;
步驟c中圖像渲染顯示,為將左右半球圖像頂點坐標和紋理坐標傳入shader,將蒙版圖像通過glTexImage2D函數指定蒙版圖像的紋理顏色組件和像素數據的顏色格式為GL_ALPHA,接下來在shader里使用通道數據進行融合;
步驟d熱點區域添加與操作包括在720全景展開的基礎上添加半透明區域,用于在全景中標識和關聯相關的設備。
2.根據權利要求1所述的基于opengl的720全景展開監控方法,其特征在于:球面360°展開計算方法為將球進行360展開,展開后的長度為R,R水平方向和豎直方向分別進行nw和nh等分,分別用stepx表示水平方向上每等分的長度,用stepy表示豎直方向上每等分的長度,緯度角(lt)為與X軸正方向的夾角,經度角(lg)為與z軸正方向的夾角,建立經緯度坐標系,計算此坐標系下球面坐標為
重新選擇坐標系,緯度角(theta)與z軸正方向為夾角,經度角(alpha)與X軸正方向為夾角;此時theta和alpha計算公式為:
頂點坐標為
3.根據權利要求2中所述的基于opengl的720全景展開監控方法,其特征在于:
所述在shader里使用通道數據進行融合中的融合公式表示為:根據頂點的坐標進行計算,如果z頂點坐標大于0,則c=l*a1+(1-a1)*r,如果z頂點坐標小于0,則c=r*a2+(1-a2)*l,其中c為最終的融合后顏色值,l為左半球的顏色值,r為有半球的顏色值,a1為左半球對應的蒙版權重值,a2為右半球對應的蒙版權重值。
4.根據權利要求3所述的基于opengl的720全景展開監控方法,其特征在于:
所述在720全景展開的基礎上添加半透明區域中的半透明區域熱點添加算法具體步驟為,d1接受用戶輸入的二維坐標信息,d2通過某種變換得到opengl坐標,具體做法是:d1.1將屏幕輸入的二維坐標變換到視窗坐標,屏幕坐標以屏幕左上角為原點,而opengl坐標以屏幕左下角為原點,假設屏幕坐標輸入為(x,y),則轉換為視窗坐標公式表示為其中v表示為視窗的高度;d1.2將視窗坐標轉換為opengl坐標,首先調用glReadPixels函數獲取該像素點處的深度緩沖區數據,然后調用gluUnProject獲取物體三維坐標,從而實現三維坐標與二維坐標一一對應,再然后經過反投影,將物體坐標轉換為窗口坐標,以在窗口中顯示出來,具體顯示方法是,假設人的眼睛站在球外面看,建立數學模型求此時人的眼睛的可視面的范圍方法如下,假設眼睛坐標為(xe,ye,ze),球面半徑為R’,以球的中心為坐標建立坐標系,以球面的背面作為可視面,可視角為φ,E為視點位置,則根據余弦公式可算出θ,其中θ為視點位置與觀察點連線和過視點位置作與圓相切直線的夾角;則可視角再根據余弦定理的向量公式求出E點與熱點區域頂點夾角是否在可視角φ內,從而判斷是否需要顯示該熱點區域;
接下來通過鼠標點擊畫面點亮熱點區域,第一步,將鼠標位置坐標轉為場景中的三維坐標,第二步,根據三維坐標反投影得到的場景在窗口坐標中的坐標點是否在多邊形內,來判斷鼠標所在坐標點是否在熱點內,并且根據可視面判斷方法判斷該熱點是否為可視,如果該鼠標位置坐標同時滿足上述兩個條件,則點亮熱點區域,并顯示該區域的唯一標識符,反之則不點亮熱點區域不進行添加;
基于opengl的720全景展開監控方法還包括將指定熱區域按照一定速度旋轉到可視窗口中心,從而實現設備的快速預覽與狀態監控,具體為計算該唯一標識符對應的熱點區域的中心,記為(a,b,c),建立坐標系,緯度角為點a與坐標原點連線與x軸正方向的夾角,經度角為該中心點投影到yz平面的點p與坐標原點連線與y軸正方向的夾角,則可計算該熱點的目標經緯角,公式表示為:
其中,sign取值為:當c0時,當c0時,
上式中β為目標緯度角,α為目標經度角,然后獲取當前場景的經緯度角,每次以一定的速度更新經緯度角直到場景的經緯度角等于指定熱點目標經緯度角,完成熱點區域的移動到視窗中心的操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浩云科技股份有限公司,未經浩云科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811202840.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于深度卷積網絡的自動圖像配準方法
- 下一篇:一種圖像處理方法及移動終端





