我是OpenCV的新手.最近,我发现OpenCV函数从Mat转换为Array很麻烦.我使用OpenCV API中提供的.ptr和.at方法进行了研究,但是我无法获得正确的数据.我希望从Mat到Array直接转换(如果可用,如果没有,则转换为Vector).我需要OpenCV函数,因为代码必须在Vivado HLS中进行高级综合.请帮忙.
是否有可逆的方式将OpenCV cv::Mat对象转换为Eigen::Matrix?
例如,某种做法:
cv::Mat cvMat;
Eigen::Matrix eigMat;
camera->retrieve(cvMat);
// magic to convert cvMat to eigMat
// work on eigMat
// convert eigMat back to cvMat
imshow("Image", cvMat);Run Code Online (Sandbox Code Playgroud)
我已经尝试使用cv2eigen和eigen2cv,但由此产生的cvMat完全是错位的,我不知道是什么原因.尺寸是正确的,但图形完全被破坏,所以可能是每像素字节或数据大小问题?
我想声明,填充,访问与命名空间cv兼容的OpenCV(C++)中的多维矩阵.我发现没有快速简单的例子.你能帮帮我吗?
我有几个存储在cv::Matwhere中的特征向量,每一行都是一个特征向量(这里有几行像这样:) [ x1 y1 x2 y2 x3 y3.... ].我必须在每个特征向量上应用SVD,为此我使用特征库.但是,在应用SVD之前,必须将特征矩阵转换为Eigen::Matrix形式.
后来,我必须将SVD结果转换回来cv::Mat.
任何人都可以建议一个很好的方法来做到这一点?我在cv::Mat表单中需要它的原因是因为我必须在OpenCV中将其输入到神经网络,并且只cv::Mat允许输入矩阵.
谢谢!!!