Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QImage的显示方法_C++_Qt_Opencl - Fatal编程技术网

C++ QImage的显示方法

C++ QImage的显示方法,c++,qt,opencl,C++,Qt,Opencl,我计划用OpenCL和Qt演示一些图像处理算法 我知道我可以用QLabel显示QImage 还有其他方法吗?(更高效、更优雅) 如果我能展示一些“实时”转换,那就太好了。 可能吗?我知道的一种方法是子类化QWidget,覆盖paintEvent并使用提供的QPainter绘制QImage。如果要更新图像,您可能还需要在该小部件上显式调用update()。我知道的一种方法是子类化QWidget,覆盖paintEvent并使用提供的QPainter绘制QImage。如果要更新图像,您可能还需要在该小

我计划用OpenCL和Qt演示一些图像处理算法

我知道我可以用QLabel显示QImage

还有其他方法吗?(更高效、更优雅)

如果我能展示一些“实时”转换,那就太好了。
可能吗?

我知道的一种方法是子类化
QWidget
,覆盖
paintEvent
并使用提供的
QPainter
绘制QImage。如果要更新图像,您可能还需要在该小部件上显式调用
update()

我知道的一种方法是子类化
QWidget
,覆盖
paintEvent
并使用提供的
QPainter
绘制QImage。如果要更新图像,您可能还需要在该小部件上显式调用
update()

您可以使用QGLWidget创建OpenGL上下文,然后使用OpenCL OpenGL互换性。因此,图像在OpenGL中渲染为纹理,并在OpenCL中进行计算


或者,查看此链接

您可以使用QGLWidget创建OpenGL上下文,然后使用OpenCL OpenGL互换性。因此,图像在OpenGL中渲染为纹理,并在OpenCL中进行计算

或者,查看您可以使用的此链接

  • void GLWidget::paintGL()与OpenGL void

    glClear(GLU颜色缓冲位)

    glDrawPixels(img.width()、img.height()、GL_RGBA、GL_无符号字节、img.bits())

  • void Painter::带Qt Painter的paintEvent(QPaintEvent*事件)

    油漆工(本)
    painter.drawImage(0,0,img,0,0,img.width(),img.height())

  • 你可以使用

  • void GLWidget::paintGL()与OpenGL void

    glClear(GLU颜色缓冲位)

    glDrawPixels(img.width()、img.height()、GL_RGBA、GL_无符号字节、img.bits())

  • void Painter::带Qt Painter的paintEvent(QPaintEvent*事件)

    油漆工(本)
    painter.drawImage(0,0,img,0,0,img.width(),img.height())


  • 我在中使用OpenCL/Qt互操作支持编写了一个示例,使用OpenCL对
    QImage
    应用一个简单的模糊过滤器,然后在Qt窗口中显示它


    请参阅:

    我在中使用OpenCL/Qt互操作支持编写了一个示例,使用OpenCL将一个简单的模糊过滤器应用于
    QImage
    ,然后在Qt窗口中显示它


    请参阅:

    更高效、更优雅
    ?什么意思?我认为QLabel对于图像的使用非常简单。@vahancho只是问有什么可能。也许有一种特殊情况适合我(OpenCL+QImage)
    更高效、更优雅
    ?什么意思?我认为QLabel对于图像的使用非常简单。@vahancho只是问有什么可能。也许对我来说有一个特例(OpenCL+QImage)