日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

利用opencv读取图片将其作为opengl的纹理图片的实现方法

發(fā)布時(shí)間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用opencv读取图片将其作为opengl的纹理图片的实现方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在opengl中實(shí)現(xiàn)三維物體的紋理貼圖的第一步就是要讀入圖片,然后指定該圖片為紋理圖片。我最早接手的項(xiàng)目中是通過一個(gè)專門的讀取bmp圖片的函數(shù)來實(shí)現(xiàn)紋理圖片的讀取的。這個(gè)函數(shù)有三個(gè)缺點(diǎn):

1、只能讀取bmp的圖片,無法讀取jpg,ppm等其他類型的圖片,要想使用其他類型的圖片,必須事先將他們轉(zhuǎn)化成bmp的圖片;

2、只能讀取2的冪次方寬和2的冪次方長(zhǎng)的大小的圖片,否則函數(shù)無法正確讀取圖片內(nèi)容;

3、只能讀取24位的bmp圖片。

???上述三個(gè)缺點(diǎn)使我們的程序有了很大的局限性。為此,在學(xué)習(xí)了opencv之后,我利用opencv中的cvloadimage()函數(shù)解決了上述問題。

我們的解決方法如下:

?? 首先利用下面這行代碼將圖片讀取到內(nèi)存中:

???IplImage * Iface = cvLoadImage(szFileName);

?? 然后利用下面代碼在內(nèi)存中開辟一個(gè)跟讀入圖片大小相同的內(nèi)存空間:

??m_new_face_BMPbytes = (unsigned char *)malloc(sizeof(unsigned char)*Iface->imageSize);

??如果我們讀取的是24位的rgb彩色圖片,那么Iface->imageSize幾位圖片的像素大小乘以3,比如我們的圖片是512*512大小的那么Iface->imageSize就是512*512*3.

??接著我們利用下面的代碼將Iface中的圖片的實(shí)際數(shù)據(jù)部分拷貝到我們制定的內(nèi)存空間中:

??memcpy(m_new_face_BMPbytes,Iface->imageData,sizeof(unsigned char)*Iface->imageSize);

??Iface->imageData為存儲(chǔ)圖片像素?cái)?shù)據(jù)的空間的首地址

??然后我們保存圖片的大小:

? m_new_face_width = Iface->width;
? m_new_face_Height = Iface->height;

??最后我們?cè)O(shè)置將m_new_face_BMPbytes指向的圖片數(shù)據(jù)制定為opengl中的紋理圖片:

?glGenTextures(1, &m_texName); //1表示生成紋理的數(shù)量,m_texName用來存儲(chǔ)生成紋理的索引,在綁定紋理的時(shí)候用到

??glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
?glDisable(GL_LIGHTING);
?glEnable(GL_TEXTURE_2D);
?
?glBindTexture(GL_TEXTURE_2D,?m_texName);
?glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
?glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
?glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
?glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
?glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8,?m_new_face_width,?m_new_face_Height, 0,
??GL_BGR_EXT, GL_UNSIGNED_BYTE,?m_new_face_BMPbytes);

這樣我們就完成了將我們讀入的圖片設(shè)置成為opengl的紋理圖片的設(shè)置了。

總結(jié)

以上是生活随笔為你收集整理的利用opencv读取图片将其作为opengl的纹理图片的实现方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 夜夜操狠狠操 | 亚洲午夜18毛片在线看 | 青青草公开视频 | www污污| 波多野结衣亚洲一区 | 玉足调教丨vk24分钟 | 亚洲乱码国产乱码精品精剪 | 在线免费看污网站 | 无码精品黑人一区二区三区 | 丁香婷婷六月天 | 我不卡一区二区 | 久久婷五月天 | 草草视频在线 | √天堂| 99re这里只有精品在线 | 成人一区二区三区 | 96免费视频 | 911看片| 亚洲生活片 | 爱爱视频在线看 | 亚洲精品欧美精品 | 国产人妻精品久久久久野外 | 国产sm主人调教女m视频 | 国产在线观看a | 久久老女人 | 久久亚洲精品国产 | 午夜精品免费观看 | 亚洲欧美另类在线观看 | 奇米777视频 | 国产精品视频久久久久久 | 丁香花电影免费播放在线观看 | 饥渴的少妇和男按摩师 | 亚洲欧美另类国产 | 精品国产亚洲AV | 中文字幕欧美亚洲 | 三级a视频| 自拍偷拍18p| 精品色 | 国产三级三级三级 | 国产911视频 | 亚洲涩涩 | 欧美乱做爰xxxⅹ久久久 | 人人澡人人干 | 中文字幕欧美专区 | 天堂影音 | 曰韩av | 宗合久久 | 香蕉久久夜色精品升级完成 | 中文字幕人成乱码熟女香港 | 99色婷婷 | 国产av人人夜夜澡人人爽麻豆 | 亚洲私人网站 | av色在线观看 | 中文字幕在线观看视频免费 | 男人用嘴添女人下身免费视频 | 97视频免费在线 | а√天堂资源官网在线资源 | 日韩av伦理 | 欧洲av无码放荡人妇网站 | 男人深夜影院 | 91欧美成人| 欧美浪妇xxxx高跟鞋交 | xxx国产| av无码一区二区三区 | 欧美性另类 | 欧美激情xxx | 欧美性猛交ⅹxxx乱大交3 | 男人的天堂黄色 | 国产精品网站视频 | av国产片| 久操免费在线视频 | 日日嗨av一区二区三区四区 | 丰满熟女人妻一区二区三 | 久久成年视频 | 精品97人妻无码中文永久在线 | 久久久久在线视频 | 日韩高清免费观看 | 成人av一区二区三区在线观看 | 日韩福利片在线观看 | 野花视频在线免费观看 | 九九热视频免费观看 | 一本—道久久a久久精品蜜桃 | 69超碰| 天天摸天天做天天爽水多 | 都市激情中文字幕 | 粗大的内捧猛烈进出 | 国产精品不卡一区二区三区 | 欧美日本一区二区 | 一本久道综合色婷婷五月 | 国产三级精品在线观看 | 黑人操日本女人 | 日本久久高清视频 | 二区影院 | 夜夜激情 | 欧美成人国产va精品日本一级 | 欧美日韩精品一区二区三区四区 | av在线大全 | 国产一区二区三区黄片 | 在线黄色av网站 |