首页 新闻 会员 周边 捐助

opencl的oclMat怎么用?

0
悬赏园豆:50 [已关闭问题] 关闭于 2023-04-06 14:10

已经成功实现通过opencv的GpuMat对象用nVidia的GPU来生成tensor,代码如下:

cv::cuda::GpuMat gpu_frame;
gpu_frame.upload(frame);
auto options = torch::TensorOptions().dtype(torch::kFloat32).device(torch::kCUDA, 0);
auto tensor = torch::from_blob(gpu_frame.data, {1, gpu_frame.rows, gpu_frame.cols, gpu_frame.channels()}, options);

但是现在想用AMD的GPU来生成tensor,因为opencv不支持AMD的GPU生成GpuMat对象,所以只能通过openCL来生成oclMat对象代替GpuMat。
根据网上查的资料,要生成oclMat对象的话需要在构建opencv的时候指定WITH_OPENCL=ON,也照做了,构建完opencv之后编译下面的文件时报错。
运行的代码:

cv::ocl::oclMat ocl_frame;

报错:

oclMat is not a member of cv::ocl

可是我已经在构建opencv的时候指定WITH_OPENCL=ON了,运行命令“clinfo”也正常显示opencl使用AMD的GPU的信息。
还是说我创建oclMat的方法不对呢?

芽衣的主页 芽衣 | 菜鸟二级 | 园豆:384
提问于:2023-04-05 21:04
< >
分享
所有回答(1)
0

好像opencv2.4之后就不支持oclMat了,需要换成UMat,现在用UMat也是问题一堆就是了...

芽衣 | 园豆:384 (菜鸟二级) | 2023-04-06 14:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册