c++ mat赋值_opencv2.0以后新增C++接口的 Mat矩阵 单行赋值及矩阵合并的有关问题与实现(苦心研究多天才解决!)...

本文介绍了在OpenCV 2.0之后如何使用C++接口进行Mat矩阵的单行赋值和矩阵合并。作者通过将CvMat转换为Mat,然后利用Mat的row方法和copyTo函数实现了矩阵的行赋值。在解决过程中遇到了函数不匹配的错误,最终找到了正确的使用方式。文章提供了查看Mat矩阵值的方法,并分享了个人的研究过程和参考资料。
摘要由CSDN通过智能技术生成

opencv2.0以后新增C++接口的 Mat矩阵 单行赋值及矩阵合并的问题与实现(苦心研究多天才解决!)

背景:现在有CvMat类型的矩阵n个,每个矩阵都是1*m的行向量,也即每个CvMat代表一个样本的特征向量。

现在需要申请一个n*m, 即n行m列的矩阵, 每一行表示一个样本的特征向量,特征向量的维数为m。此问题也就是纠结我多天的矩阵合并问题。

解决方法:

CvMat *palm = (CvMat*)cvLoad(path);  //得到一个行向量

Mat tempMat = Mat(palm, true);            //将CvMat转为Mat

Mat dsttemp = M.row(n);             //M为目的矩阵 n*m

tempMat.copyTo(dsttemp);       //

如何查看M的值呢,网上说cout<

我自己的方法:

const float *pData = M.ptr(1);   //这是查看第二行的值,如果查看第一行则改为 (0)

for(int i=0; i

cout<

至此,问题完美解决!!! NND,让我研究了几天。

参考:

(1)http://stackoverflow.com/questions/8005627/opencv-2-3-copyto-function-not-working-as-it-was-in-2-2

(2)http://hi.baidu.com/%BE%B2%C7%C4%C7%C4%B5%D8%B0%AE%D7%C5%C4%E3/blog/item/509b7d198c12742734fa417e.html#0  我按照此方法,报错:

错误:no matching function for call to 'cv::Mat::copyTo(cv::Mat)'

(3)http://www.opencv.org.cn/forum/viewtopic.php?p=2987     基于CVMat类型的实现,太麻烦了,我没有实验,大家有弄的出来结果给我说下哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值