【问题标题】:clCreateImage2D - Load RGB imageclCreateImage2D - 加载 RGB 图像
【发布时间】:2013-01-16 16:18:48
【问题描述】:

我正在尝试使用clCreateImage2D 将 OpenCV 图像 (IplImage) 加载到 GPU 中。

使用IplImage 的原因是,我想加载任何类型的图像。(jpg、bmp、png)。

我可以使用clCreateImage2DCL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR mem_flags 以及CL_RGBCL_UNORM_SHORT_565 类型来加载图像。但是在内核函数read_imagef函数中不接受CL_UNORM_SHORT_565类型。

那么,如何将 RGB 图像发送到 OpenCL 内核函数?

编辑:我将输入图像转换为 32 位。但是知道image_channel_orderimage_channel_data_type 是什么?订单不能是 RGBA,因为它没有 Alpha 通道。

【问题讨论】:

    标签: c opencv opencl


    【解决方案1】:

    OpenCL 不支持 24 位 RGB。所以你得先把它转换成32位RGB,然后再传给OpenCL内核

    【讨论】:

    • 我将输入图像转换为 32 位。但是知道image_channel_orderimage_channel_data_type 是什么?
    • 如果您将其转换为 32 位,您必须将第四个字节设置为一个值,该值又被解释为 alpha 通道。此外,选择了订单。
    • @matthias 好的,那么 data_type 是什么?我尝试了 CL_SIGNED_INT32 和 CL_UNSIGNED_INT32,但我从 clCreateImage2D 得到无效的图像大小错误。
    • CL_RGBACL_UNSIGNED_INT8。如果单个像素是 32 位,那么每个分量都是 8 位,因此CL_UNSIGNED_INT8
    猜你喜欢
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2020-05-07
    • 2016-09-28
    相关资源
    最近更新 更多