OpenCL 如何使用OpenCV读入一个图像到buffer对象?

PYL591042460 2012-08-21 04:50:21
一个原来的项目 接口和数据类型都是拿OpenCV写的 现在要用OpenCL加速处理
我可以使用OpenCV从硬盘读入一个IplImage * 类型的图像,我现在想把它转为OpenCL的buffer对象(硬件不支持image对象),图像是RGB图像,所以需要三个buffer对象,请问这应该怎么做?
...全文
1225 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sanicle 2013-09-06
  • 打赏
  • 举报
回复
opencv和opencl的融合无疑会把cv的能力提升一个档次,我觉得楼主不用太额外关心opencl,因为cv会把优化和这方面的拓展逐步整合进去的。
fronteer 2013-08-20
  • 打赏
  • 举报
回复
IplImage 类型的 imageData 指针指向的就是其RGB 数据啊,我一般就是用 OpenCL 代码直接操作 imageData. 每个矩阵位置 (x,y) 的 pixel 可直接按如下方式访问 uchar * pixelp = myImg->imageData + y * myImg->widthStep + x * myImg->nChannels; pixelp[0], pixelp[1]. pixelp[2] 就是该pixel 三个通道的颜色值。 在 GPU kernel 上可以用一个uchar3 向量寄存器一次读取。 如: uchar3 mypixel; mypixel = vload3(0, &pixelp); 以后的计算操作可就通过向量寄存器来优化. 所以 IplImage 的 widthStep 和 nChannels 也是需要关注的, widthStep是图像一行所占据的实际长度,其值可能比 width * nChannels 要大. nChannels 是实际的通道数,可能是4, 因为图像可能有 Alpha 通道。
snock 2012-08-29
  • 打赏
  • 举报
回复
觉得楼主对OpenCL还没什么概念,最好先看看编程指导。
mikewolf2007 2012-08-28
  • 打赏
  • 举报
回复
把cl buffer映射到IplImage的data字段
lkchl 2012-08-22
  • 打赏
  • 举报
回复
opencv现在已经有了opencl的加速版本,还没有正式release,可以在官方的git下载

604

社区成员

发帖
与我相关
我的任务
社区描述
异构开发技术
社区管理员
  • OpenCL和异构编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧