gpt4 book ai didi

opencv - cv::Mat 和 arma::mat 之间的转换

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:53 28 4
gpt4 key购买 nike

我正在使用 OpenCV,还想添加来自 mlpack 的一些很酷的函数,它正在使用 Armadillo矩阵。

有没有一种简单的方法可以在 cv::Mat 和 arms::mat 之间转换?

谢谢!

最佳答案

OpenCV 的 Mat 有一个指向其数据的指针。 Armadillo 有一个能够读取外部数据的构造函数。很容易把它们放在一起。请记住 Armadillo 按列优先顺序存储,而 OpenCV 使用行优先。我想您需要在转换之前或之后添加另一个步骤。

cv::Mat opencv_mat;    //opencv's mat, already transposed.
arma::mat arma_mat( reinterpret_cast<double*>opencv_mat.data, opencv_mat.rows, opencv_mat.cols )

cv::Mat 构造函数有一个接受数据指针的形式,而 arma::mat 有一个函数,用于指向其数据的双*指针,称为 memptr ().

因此,如果您想将 arma::mat 转换为 cv::Mat,这应该可行:

cv::Mat opencv_mat( rows, cols, CV_64FC1, arma_mat.memptr() )

关于opencv - cv::Mat 和 arma::mat 之间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26973970/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com