我有一个用于训练SVM大小(1 x 5)的标签矩阵.5个标签用于5个图像。
现在,问题在于,具有训练数据的数据矩阵的大小(1 x 65000)。事实上,这个矩阵的大小必须是(5 x 13000);这是13000行的5列(图像)。
我尝试重塑但它没有用。我可以帮助您了解如何更改矩阵大小。
谢谢
答案 0 :(得分: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);
}
}
然后发布旧的训练数据矩阵,你就有了一个全新的(形状正确!)矩阵。