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

化工仿真中圖像翻轉(zhuǎn)變換圖形學編程研究

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

何杰 王大立 袁紅 姜國平

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

關(guān)鍵詞:圖形學編程;鏡像;像素讀寫;位圖;OpenCV;化工仿真;虛擬現(xiàn)實

0? ? 引言

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

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

1? ? Bitmap-file解析

用WinHex查看一24-bit Bitmap file(圖1),知它每行? ?420 pixels(width)×3 Bytes/pixel=1 260 Bytes,能被4整除,不用進行補位。對此圖變換無須考慮這些無效或冗余填充數(shù)據(jù)。本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? ? 位圖鏡像變換機理與編程實現(xiàn)

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

3? ? OpenCV應用實例

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

3.1? 讀取圖像

Mat src = imread(“kneader.jpg”, CV_LOAD_IMAGE_UNCHANGED); Imread( )函數(shù)經(jīng)常與imshow(“src”, src); 配合使用。可以理解Mat為一個數(shù)據(jù)存儲容器,定義了一個src對象來存儲圖像數(shù)據(jù)。Mat類能夠自動管理內(nèi)存。

3.2? 創(chuàng)建矩陣

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

3.3? 鏡像生成

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

3.4? 像素重映射

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

4? ? 結(jié)語

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

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

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

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

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

[參考文獻]

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

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

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

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

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

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

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

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

(編輯 王雪芬)

主站蜘蛛池模板: 天天干伊人| 99这里只有精品免费视频| 日本午夜三级| 中文字幕佐山爱一区二区免费| 精品伊人久久久大香线蕉欧美 | 国产网友愉拍精品| 伊人久久福利中文字幕| 天堂av综合网| 日本91视频| 久夜色精品国产噜噜| 国产精品13页| 91在线无码精品秘九色APP| 亚洲欧美人成电影在线观看| 巨熟乳波霸若妻中文观看免费 | 老色鬼久久亚洲AV综合| 国产在线观看人成激情视频| 欧美一级在线看| 亚洲国产欧美自拍| 亚洲无卡视频| 亚洲精品在线影院| 四虎精品国产AV二区| 亚洲国产一成久久精品国产成人综合| 性网站在线观看| 91精品啪在线观看国产60岁| 91日本在线观看亚洲精品| 97精品国产高清久久久久蜜芽| 久久人人97超碰人人澡爱香蕉 | 中文字幕在线欧美| 国产尤物在线播放| 99热免费在线| 毛片免费在线视频| 亚洲大尺码专区影院| 国产AV无码专区亚洲A∨毛片| 亚洲伊人天堂| 国产极品美女在线| 亚洲欧美综合精品久久成人网| 好吊妞欧美视频免费| 色哟哟国产精品一区二区| 亚洲欧美日韩成人高清在线一区| 亚洲第一极品精品无码| 夜夜拍夜夜爽| 国产男女免费视频| 国产一区二区三区精品欧美日韩| 九月婷婷亚洲综合在线| 婷婷亚洲视频| 亚洲欧美极品| 91黄色在线观看| 国产一级做美女做受视频| 夜夜操国产| 久久人人97超碰人人澡爱香蕉| 欧美成人午夜在线全部免费| 蜜桃臀无码内射一区二区三区| 最新无码专区超级碰碰碰| 久久这里只精品国产99热8| 国产第一页免费浮力影院| 亚洲成人黄色在线| 欧美国产日韩在线| 亚洲成a人片77777在线播放| 69精品在线观看| 日韩国产无码一区| 一本无码在线观看| 亚洲高清在线天堂精品| 久久久精品久久久久三级| av一区二区三区高清久久| 素人激情视频福利| 国产精品主播| 国产精品亚洲专区一区| 国产农村妇女精品一二区| 国产亚洲精品自在线| 亚洲天堂日韩av电影| 一级毛片在线直接观看| 日韩成人在线网站| 国产男女免费视频| 亚洲aaa视频| 亚洲国产第一区二区香蕉| 亚洲人成网18禁| 国产一在线观看| 精品国产美女福到在线不卡f| 一本一道波多野结衣一区二区| 伊人久久精品亚洲午夜| 中文字幕欧美成人免费| 国产一级毛片网站|