首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从gpuHog中获取描述符?

如何从gpuHog中获取描述符?
EN

Stack Overflow用户
提问于 2014-01-16 17:32:43
回答 1查看 737关注 0票数 1

我使用的CPU版本如下。

代码语言:javascript
复制
vector<float> descriptors;
cv::HOGDescriptor hog(cv::Size(24,32),cv::Size(12,12),cv::Size(4,4),cv::Size(6,6),6);
hog.compute(img, descriptors,cv::Size(8,8), cv::Size(0,0));

我的问题是如何使用GPU获得“描述符”?

我尝试了下面的代码。(不起作用)

代码语言:javascript
复制
cv::gpu::GpuMat gpu_value, gpu_descriptors;
cv::gpu::HOGDescriptor hog_gpu(Size(24,32),Size(12,12),Size(4,4),Size(6,6),6);
gpu_value.upload(img);
hog_gpu.getDescriptors(gpu_value,cv::Size(8,8),gpu_descriptors);

如何从‘gpu_描述符’中获得‘描述符’?

有人能帮我解决这个问题吗?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-16 19:06:09

您可以使用gpu_descriptors memeber函数download()gpu::GpuMat下载到CPU内存,如下所示:

代码语言:javascript
复制
Mat cpu_descriptors; 
gpu_descriptors.download(cpu_descriptors);

但是,在GPU上存储的描述符可能与在CPU上的存储方式不同,也就是说,cpu_descriptors可能与上面代码中计算的descriptors不完全相同。但你可以试试。

编辑似乎没有一种方法可以将描述符以vector<float>格式下载到gpu::HOGDescriptor内存中。作为附带说明,我知道您可以使用gpu::SURF_GPU的成员函数下载它的特性检测器的描述符

代码语言:javascript
复制
void downloadDescriptors(const GpuMat& descriptorsGPU,
    vector<float>& descriptors);

这正是你想要的。但是,不幸的是,由于某种原因,这个函数不存在于cv::gpu::HOGDescriptor。您可以尝试找出数据如何存储在vector<float>类型的描述符中,然后尝试从Mat格式转换为vector<float>格式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21168806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档