999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

化工仿真中圖像翻轉變換圖形學編程研究

2021-09-10 20:38:02何杰王大立袁紅姜國平
無線互聯科技 2021年6期

何杰 王大立 袁紅 姜國平

摘 要:OpenGL和OpenCV特有開源庫函數被用于圖像變換,顯示了高效、便捷性。文章面向紋理貼圖應用,對位圖文件結構進行了詳盡解析;依據圖像顏色點陣數據,用C++結合OpenCV編寫了位圖鏡像變換程序。通過調用OpenCV庫函數,所編鏡像變換程序代碼更簡單,功能更完備,不僅可被用于處理*.bmp格式圖片,還能被用于處理*.jpg, *.png, *.webp, *.pbm, *.pgm, *.sr, *.ras, *.tiff, *.tif等格式圖片?;贠penCV函數庫,易于快速編程實現各種圖像變換且效果較好,為進一步應用研究打下了基礎。

關鍵詞:圖形學編程;鏡像;像素讀寫;位圖;OpenCV;化工仿真;虛擬現實

0? ? 引言

實際物體表面有豐富紋理,要繪制逼真的3D物體,除光照處理外,還要給其表面附上紋理特征,用到“紋理貼圖”技術[1-2]。OpenGL(Open Graphics Library)是被用于渲染2D、3D矢量圖形、跨語言、跨平臺的應用程序編程接口,常被用于CAD、虛擬現實、科學可視化程序和電游開發。其關聯軟件有很好的移植性。簡單說,OpenGL與硬件無關,獨立于操作系統,支持網絡運行。OpenCV(Open Source Computer Vision Library)廣受歡迎,源代碼開放,可被用于開發實時圖像處理、計算機視覺及模式識別程序,在工業界及科研領域被廣泛采用。OpenGL提供了位圖操作函數。利用其紋理映射功能可以十分逼真地表達物體表面細節[3-5]。利用OpenCV函數庫,可以較好地實現各種格式圖片空間幾何、色彩、明暗等變換操作[6]。

尹航等[7]討論了在VS2005環境下借助OpenGL和第三方庫CxImage(圖像操作類庫),利用PNG圖片進行紋理映射。袁亮等[1]為了實現二次曲面紋理映射,在分析OpenGL紋理映射技術的基礎上,詳細討論了球形曲面紋理坐標生成和設置;然后,利用OpenGL函數庫,在VC++環境下,實現了雷達天線罩迷彩紋理貼圖。薛兆井? ?等[3]研究了基于OpenGL讀取bmp圖像實現紋理映射的一種新方法。韓姣[8]探討了在VC++環境下bmp與gif圖像文件格式轉換,編程實現了bmp圖像讀取、顯示和保存等相關操作。文章面向紋理貼圖應用,探討了圖像鏡像變換圖形學編程技術。

1? ? Bitmap-file解析

用WinHex查看一24-bit Bitmap file(圖1),知它每行? ?420 pixels(width)×3 Bytes/pixel=1 260 Bytes,能被4整除,不用進行補位。對此圖變換無須考慮這些無效或冗余填充數據。本Bitmap file總大小為420 pixels(寬)*534 pixels(高)*3 Bytes/pixel+14 Bytes(size of bitmap-file header)+? ? 40 Bytes(size of bitmap-information header)+2(Photoshop圖像整體補位) =672 896 Bytes,或672 896 Bytes/1 024 Bytes/KB≈657 KB。圖像大小為672 837/3+1 =224 280 pixels=? ? ? ? 420 pixels(寬)*534 pixels(高)。

2? ? 位圖鏡像變換機理與編程實現

如圖2所示,其像素數據寫入順序統一為“左右下上”。區別是像素數據讀取次序,對于原圖輸出,其順序是“左右下上”,而對于鏡像變換,為“右左下上”?;蛘哒f,其逐行像素信息被左右對換了。按一定次序,程序首先提取源圖右下角單元格數據,寫入鏡像圖左下角單元格內,以此類推。表達式“bmpImg->imageData[i * width * 3 + j * 3 + k] = pixVal;”引用了指針bmpImg指向的結構體IMAGE成員imageData。

3? ? OpenCV應用實例

應用C++結合OpenCV混合編程(Win7_64-bit System,VS2019+OpenCV4.3.0)可以更方便地對圖片進行鏡像變換。其變換機制與程序注解如下:

3.1? 讀取圖像

Mat src = imread(“kneader.jpg”, CV_LOAD_IMAGE_UNCHANGED); Imread( )函數經常與imshow(“src”, src); 配合使用??梢岳斫釳at為一個數據存儲容器,定義了一個src對象來存儲圖像數據。Mat類能夠自動管理內存。

3.2? 創建矩陣

inline void Mat::create(Size _sz, int _type)Mat類是一個矩陣圖像類,由兩部分組成:矩陣頭,包含矩陣尺寸、存儲方法、存儲地址等信息,和一個指向存儲圖像中所有像素的矩陣體。例如,“cv::Mat dstImg;”僅創建了圖像矩陣信息頭部分,并未創建矩陣體。因此,cv::Mat::create( )函數作用就很清楚了,創建一個指定大小(Size),指定類型type(CV_8UC1, CV_16SC1, CV_32FC3)的圖像矩陣體。

3.3? 鏡像生成

for ( init; condition; increment ) {? statement(s); }鏡像生成主代碼被包含在C++ for循環內,如圖2所示。鏡像變換基本機制是,保持兩圖像素橫坐標值不變,縱坐標值次序發生順逆轉化。Mat類提供了一個at方法,SrcImage.at(i,j)訪問圖像第i行j列像素,SrcImage.at(i,j)[k]讀取彩圖第i行j列k通道顏色點數據。Vec3b是圖像像素值類型。

3.4? 像素重映射

remap(src, dst, map_x, map_y, CV_INTER_LINEAR); 圖像坐標映射關聯有兩種,一種是計算源圖任意像素在映射后圖像坐標位置,另一種是計算變換后圖像任意像素被反映射在源圖坐標位置。重映射就是把一圖中某位置像素“放置”到另一圖指定位置的過程。為了完成重映射有必要獲得一些插值作為非整數像素坐標,因為源圖、目標圖像素坐標非一一對應。通過重映射來表達每個像素新位置g(x,y),滿足g(x,y)=f(h(x,y))。h(x,y)是作用于(x,y)的映射方法函數。最后,用imshow( )顯示圖像;用waitkey(0)使圖像顯示保持,而非一閃而過。

4? ? 結語

紋理映射能極大地提高虛擬物體真實感。為使化工仿真更真實,可以將實物圖用作紋理圖。在對bmp圖及其他格式圖像變換方面,本研究主要內容、結論有:

(1)用WinHex查閱了一例圖Bitmap-file,解析了Bitmap-file數據、結構。明確了Bitmap像素點與Bitmap-file中像素點陣數據一一對應關系。基于圖像顏色點陣數據,用Visual Studio 2013中Visual C++結合OpenGL編寫了位圖鏡像生成程序;

(2)基于位圖像素數據讀寫函數fread與fwrite,設計了特定像素數據讀寫順序,實現了位圖鏡像變換;

(3)在Microsoft Visual C++編譯環境下,采用OpenCV計算機視覺庫混合編程,高效、便捷實現了圖像鏡像變換;

(4)紋理映射可以賦予化工設備、管道、框架、廠房、場景真實感,運用圖形學編程對各種實物圖片進行靈活變換有利于更好地應用紋理映射。

[參考文獻]

[1]袁亮,張兵,李廣強.OpenGL二次曲面紋理映射技術分析與應用[J].空軍雷達學院學報,2009(5):376-378.

[2]唐聰.基于OpenGL的三維場景可視化仿真[D].西安:西安電子科技大學,2013.

[3]薛兆井,胡平平.基于OpenGL讀取bmp實現紋理映射的方法[J].軍民兩用技術與產品,2009(9):40-41.

[4]趙方,張軍和,彭亞雄.基于OpenGL紋理映射反走樣技術的研究[J].電腦知識與技術,2011(17):4160-4161,4164.

[5]吳發輝,張玲,余文森.基于圖形學算法的紋理映射技術的研究與實現[J].現代電子技術,2018(24):71-74.

[6]趙浩杰,金德智,李彥杰.基于OpenCV的彩色目標識別[J].中國科技信息,2016(2):36-37.

[7]尹航,李義杰,孫健超.基于OpenGL的PNG紋理映射的實現[J].計算機系統應用,2009(7):182-185.

[8]韓姣.基于VC++的BMP格式圖像與GIF格式圖像轉換 [J].武漢理工大學學報(信息與管理工程版),2007(12):23-25,30.

(編輯 王雪芬)

主站蜘蛛池模板: 久久黄色小视频| 波多野吉衣一区二区三区av| 免费在线a视频| 狠狠亚洲婷婷综合色香| 亚洲天堂在线免费| 欧美成人亚洲综合精品欧美激情| 91在线精品免费免费播放| 亚洲欧美日韩天堂| 韩日无码在线不卡| 91午夜福利在线观看| 2021国产v亚洲v天堂无码| 超碰aⅴ人人做人人爽欧美 | 全部无卡免费的毛片在线看| 毛片网站免费在线观看| 国产精品亚洲日韩AⅤ在线观看| 精品99在线观看| 99九九成人免费视频精品| 色亚洲成人| 伊在人亚洲香蕉精品播放 | 美女扒开下面流白浆在线试听| 欧美日韩国产精品va| 91久久国产综合精品女同我| 久久福利网| 国产欧美日韩18| 国产成人调教在线视频| 亚洲欧美日本国产综合在线| 日本妇乱子伦视频| 91精品人妻互换| 三级视频中文字幕| 全午夜免费一级毛片| 亚洲高清在线播放| 全午夜免费一级毛片| 波多野结衣亚洲一区| 亚洲AV无码久久天堂| 久久久久九九精品影院| 麻豆国产精品一二三在线观看| 亚洲另类第一页| 欧美v在线| 国产激爽爽爽大片在线观看| 97色伦色在线综合视频| 亚洲人免费视频| 四虎精品国产永久在线观看| 在线观看网站国产| 欧美乱妇高清无乱码免费| 色成人亚洲| 国产人成午夜免费看| 9cao视频精品| 一区二区欧美日韩高清免费 | 激情综合激情| 国内自拍久第一页| 亚洲区视频在线观看| 亚洲AV一二三区无码AV蜜桃| 777国产精品永久免费观看| 99成人在线观看| 国产成人精品2021欧美日韩| 亚洲成AV人手机在线观看网站| 国产91全国探花系列在线播放 | 国产一区二区精品福利| 免费亚洲成人| 国产91丝袜在线观看| 国产精欧美一区二区三区| 少妇精品久久久一区二区三区| 国产婬乱a一级毛片多女| 99re在线观看视频| 99久久精品视香蕉蕉| 99人妻碰碰碰久久久久禁片| 午夜色综合| 国产黄在线观看| 国产在线一区视频| 992Tv视频国产精品| www.精品视频| 亚洲天堂成人在线观看| 极品国产一区二区三区| 中文字幕第1页在线播| 一区二区三区毛片无码 | 日韩成人在线一区二区| 啪啪永久免费av| 婷婷亚洲视频| 色综合天天操| 欧美色图第一页| 国产日本视频91| 久久香蕉国产线看精品|