簡體   English   中英

顯示QImage的方式

[英]Ways to display QImage

我打算演示一些使用OpenCL和Qt的圖像處理算法。

我知道我可以使用QLabel顯示QImage。

還有其他辦法嗎? (更高效,更優雅)

如果可以顯示一些“實時”轉換,那就太好了。 可能嗎?

您可以使用;

  1. 帶有OpenGL的GLWidget :: paintGL()

    glClear(GL_COLOR_BUFFER_BIT);

    glDrawPixels(img.width(),img.height(),GL_RGBA,GL_UNSIGNED_BYTE,img.bits());

  2. Qt painter無效的Painter :: paintEvent(QPaintEvent * event)

    QPainter painter(this);
    painter.drawImage(0,0,IMG,0,0,img.width(),img.height());

我知道的一種方法是使用提供的QPainter paintEvent QWidget子類,重寫paintEvent並繪制QImage。 如果要更新圖像,可能還需要顯式調用該小部件上的update()

您可以使用QGLWidget創建OpenGL上下文,然后使用OpenCL-OpenGL互換性。 因此,在OpenGL中將圖像渲染為紋理,並在OpenCL中完成計算。

另外,請查看此鏈接http://doc.qt.digia.com/opencl-snapshot/openclgl.html

我已經在Boost.Compute中使用OpenCL / Qt互操作支持編寫了一個示例,以使用OpenCL將簡單的模糊濾鏡應用於QImage ,然后將其顯示在Qt窗口中。

參見: https : //github.com/kylelutz/compute/blob/master/example/qimage_blur.cpp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM