[問題] OpenGL中用OpenCV的型別表示texture

看板C_and_CPP作者 (拉)時間14年前 (2010/06/11 00:05), 編輯推噓4(4026)
留言30則, 2人參與, 最新討論串1/1
我想請問關於在OpenGL使用texture的問題,我主要參考的網站是這個 http://www.nullterminator.net/gltexture.html 他這邊的範例是使用raw檔,可是我想要用OpenCV的格式 其中會用到圖的資訊看起來主要是這個函式 gluBuild2DMipmaps( GL_TEXTURE_2D, 3, width, height, GL_RGB, GL_UNSIGNED_BYTE, data ); 其中width height是圖的長寬,這沒什麼問題,可是data是一個buffer,IplImage裡面 好像沒這樣的東西? 還是說我應該自己另外寫一個data = malloc( width * height * 3 ); 有沒有高手可以解答這個問題,感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.107.40

06/11 00:44, , 1F
GL只認得自己的格式, 你沒辦法直接把CV的東西餵給GL, 除
06/11 00:44, 1F

06/11 00:44, , 2F
非它的data部份剛好長的一模一樣....
06/11 00:44, 2F

06/11 00:45, , 3F
我剛剛試出來了 自問自答一下 用xxx->imageData就可以了
06/11 00:45, 3F

06/11 00:46, , 4F
另外請問你是要拿來做什麼?? gluBuild2DMipmaps() 看起
06/11 00:46, 4F

06/11 00:46, , 5F
來是用來建mipmap的, 你有需要用到mipmap嗎?_?
06/11 00:46, 5F

06/11 00:47, , 6F
謝謝1樓熱心回答XD , 我剛剛推文的時候還沒看到你
06/11 00:47, 6F

06/11 00:49, , 7F
不客氣啦, 您都自己試出來了, 只是, 您得確定imageData
06/11 00:49, 7F

06/11 00:50, , 8F
之後會用到glBindTexture 他需要用到GLuint物件
06/11 00:50, 8F

06/11 00:50, , 9F
裡的東西, 和你call GL Tex API傳的參數是一致且資料是
06/11 00:50, 9F

06/11 00:50, , 10F
連續的....
06/11 00:50, 10F

06/11 00:51, , 11F
對 所以要先cvCvtColor BGR2RGB 不然會出問題
06/11 00:51, 11F

06/11 00:54, , 12F
ㄟ~~請問您最後是用哪個GL API傳texture image上去的??
06/11 00:54, 12F

06/11 00:55, , 13F
glTexImage2D 是可以直接吃資料 format 為 GL_BGR 的唷
06/11 00:55, 13F

06/11 00:56, , 14F
http://0rz.tw/VF59v format是描述data的layout,
06/11 00:56, 14F

06/11 00:57, , 15F
internalFormat是描述你希望這張texture的layout為何.
06/11 00:57, 15F

06/11 01:00, , 16F
glTexImage2D(2D,0, ?,w,h,0,GL_RGB, UBYTE, imageData)
06/11 01:00, 16F

06/11 01:00, , 17F
上面是範例, 2D要補完GL_TEXTURE_2D, 其他參數也是,
06/11 01:00, 17F

06/11 01:01, , 18F
? 那個internalFormat則是看你希望texture的format為何.
06/11 01:01, 18F

06/11 01:08, , 19F
我目前是從他的sample code改的 他是用WINAPI去display的
06/11 01:08, 19F

06/11 01:09, , 20F
不過我會把它改成用glutDisplayFunc來display 我現在還在
06/11 01:09, 20F

06/11 01:10, , 21F
研究如何把texture貼到一個glutSolidSphere之類的
06/11 01:10, 21F

06/11 01:11, , 22F
無論如何 真的非常感謝VictorTom大大的指導
06/11 01:11, 22F

06/11 01:21, , 23F
glutSolidSphere? 畫這個要上texture上的如你所想可能有
06/11 01:21, 23F

06/11 01:21, , 24F
難度喔?? 你確定不直接先從簡單的畫個QUAD開始試嗎?? 印
06/11 01:21, 24F

06/11 01:22, , 25F
象中glutSolidSphere不會幫你插texCoord, 就算插了你也
06/11 01:22, 25F

06/11 01:23, , 26F
不好推算該怎麼map到texImage上; 查到比較常用就是搭配
06/11 01:23, 26F

06/11 01:24, , 27F
TexCoord Auto Gen的功能(GL_TEXTURE_GEN_?)
06/11 01:24, 27F

06/11 01:25, , 28F
所以插圓形不好做嗎 那退而求其次貼到glutSolidCube上呢?
06/11 01:25, 28F

06/11 01:35, , 29F
目前只想到貼6個quads在cube上面 可是這樣好像有點蠢
06/11 01:35, 29F

06/11 01:37, , 30F
V大說的AutoGen是什麼 有可能自動生出TexCoord貼到Cube上?
06/11 01:37, 30F
文章代碼(AID): #1C4GqjZw (C_and_CPP)