将 OpenCV 矩阵转换为 C 数组以与 CUDA 一起使用

卡拉姆·阿博·加利耶

我使用这个函数用某个 C 数组填充 openCV:

float data[9] = { 1, 0.5,-51,0,1,50,0,0,1}; 
Mat myH = cv::Mat(3, 3, CV_32F, data);

但我想知道是否有另一个函数对矩阵 A 执行相反的操作:

float myArray [Size_Of_A] = Mat A; 

我知道我可以用循环来做到这一点,但如果没有功能可以做到,这是我最后的选择。循环将是这样的:

float myArray[size_of_A];
for (int row = 0; row < A.rows; row++)
    for (int col = 0; col < A.cols; col++)
        myArray[row * A.cols + col ] = A.at<float>(row, col);

我需要将图像发送到 CUDA 内核。

卡拉姆·阿博·加利耶

我从三木评论中得到了这个答案,

float* myArray = myH.ptr<float>();

所以不需要在主机端复制数据,我们可以使用新的指针“myArray”复制到设备。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章