如何在OpenCV圖像結構上執行OpenGL像素着色器?有沒有用於OpenCV的任何庫或插件?OpenCV:是否可以使用它來執行OpenGL像素着色?
1
A
回答
3
我不會包括設立一個OpenGL上下文,執行實際渲染操作等,認爲這是僞代碼大綱只是想給你你如何能做到這一點的想法(假設你想重用在OpenCV中的輸出中:
首先,你創建一個紋理(必須一次性完成,coirse的),那麼你的OpenCV上傳圖像數據到創建的紋理(或更新)
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, ...parameters based on your image, pointer to raw image data);
。
現在你的OpenCV的圖像是一個OpenGL紋理。後來,你只需要渲染圖片,檢索像素數據。
glViewport(0,0,imagewidth,imageheight); // has to be done once
renderTexturedQuadWithShaders();
glReadPixels(..., &pointer); // read the raw image data again
這應該工作,但是不要忘記,你必須使用正確的紋理格式不搞砸了你的圖像數據,你可能需要使用另一個緩衝區(現在我不是100%確定是否可以將圖像數據寫入OpenCV圖像中)。
編輯:您可以渲染到屏幕或幀緩衝區對象,基本概念保持不變。只要確保你渲染到正確的目標。
2
當然,你可以,只要上傳你的圖片作爲OpenGL的紋理,畫出一個紋理映射四,並使用一個片段着色器繪製成具有幀緩衝區對象另一個紋理。
你可以做很多次,然後將紋理數據讀回至CPU,以獲得最終的圖像。
相關問題
- 1. 是否可以在sprite內使用像素着色器?
- 2. 是否可以使用Visual Studio調試OpenGL着色器?
- 3. 是否可以使用JavaScript重新着色圖像?
- 4. 是否可以在Android OpenGL ES 2中調試着色器?
- 5. OpenGL着色器遞歸過程像素
- 6. 是否可以使用mosaic :: dotPlot對點進行着色?
- 7. OpenGL的每像素着色與GLSL着色器
- 8. 使用OpenGL着色器傾斜圖像
- 9. 使用像素着色器執行快速計算?
- 10. 僅對可見像素執行片段着色器
- 11. 是否可以將OpenCV GpuMat作爲OpenGL紋理進行綁定?
- 12. 使用行主要在OpenGL着色器
- 13. 確定是否可以使用兩種顏色對無向圖進行着色
- 14. 是否可以使用SuiteTalk執行SuiteScript?
- 15. 是否可以使用flask執行Includes?
- 16. 是否可以使用循環引用來執行序列化?
- 17. 的OpenGL着色器 - 用它的正常
- 18. 是否可以通過程序對圖像着色?
- 19. OpenGL渲染不使用OpenCV的GLSL着色器
- 20. 我是否需要爲OpenGL 3.3核心使用着色器?
- 21. 使用OpenGL ES 2.0可以推遲渲染/着色嗎?
- 22. 是否可以使用頂點着色器渲染三角形?
- 23. 是否可以使用SO的腳本來着色問題中的代碼?
- 24. 通過片段/像素着色器改變特定的像素顏色?(opengl)
- 25. 是否可以使用HTML5或CSS3的漸變貼圖重新着色圖像?
- 26. OpenGL使用着色器定義顏色
- 27. 檢查灰度圖像中的像素是否爲黑色(OpenCV)
- 28. 是否可以使用CSS來改變黑色PNG圖像的顏色?
- 29. 是否有可能使用WebGL運行#version 120着色器
- 30. 使用多個像素着色器?
是否有關於如何執行這樣的事情的任何物品或示例代碼演示,或者你能提供一個在這裏嗎? – Rella 2011-06-03 19:54:09