opencv给mat赋值失败

向量vecY中有数据,tem中也有数据,size大小也没错,但就是labelmat中的值一直都是0。赋值一直不成功,求解释... 向量vecY中有数据,tem中也有数据,size大小也没错,但就是labelmat中的值一直都是0。
赋值一直不成功,求解释
展开
 我来答
喧世幽人
推荐于2016-09-15 · TA获得超过1238个赞
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:88.2万
展开全部

据我的推测,你是想得到一个标签矩阵,用作训练标签(不知道是不是?)。明确一个问题,标签矩阵是一个N行1列的矩阵,不是1行N列的矩阵!!所以程序修改如下:

cv::Mat getLabelMat(const std::vector<double>& dvec)
{
    cv::Mat labelMat(dvec.size(), 1, CV_64FC1);    // 行列调换
    for(int i = 0; i < dvec.size(); ++i)
    {
        labelMat.at<double>(i, 0) = dvec[i];       // 行列调换
    }
    return labelMat;
}

上述结果得到列向量,截图如下:

 

不过,我也试了你的方法,发现也是可以的,只是得到的是行向量,截图如下:

更多追问追答
追问

不是行向量或列向量的问题   

我现在是赋值失败,赋值是0,而且只有一个,不知道是什么问题

追答
我就是按照你写的方法,赋值成功了。。。你打印一下labelmat试试~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式