2013-06-26 86 views
0

我有用于训练SVM大小(1 x 5)的标签矩阵.. 5个图像的5个标签。Opencv矩阵行和列

现在问题是,训练数据的数据矩阵的大小是(1 x 65000)。事实上,这个矩阵的大小必须是(5 x 13000);即13000行的5列(图像)。

我试过重塑,但没有奏效。我可以得到一些帮助如何改变矩阵大小。

谢谢

+1

你怎么开始你的垫子? – Poko

回答

1

在这里做的是创建一个新的矩阵和一次复制了一个元素的最简单的事情。我不确定矩阵的结构是什么,但我们假设第一个训练样例对应于您当前在错误形状矩阵的条目1-5中所具有的内容。

cv::Mat training_data = new cv::Mat(13000, 5, CV_32F); 
for (unsigned int row = 0; row < training_data.rows; ++row) 
{ 
    for (unsigned int col = 0; col < training_data.cols; ++col) 
    { 
     training_data.at<float>(row, col) = old_training_data.at<float>(1, (training_data.cols * row) + col); 
    } 
} 

然后释放旧的训练数据矩阵,并且你有一个全新的(形状正确的)矩阵。