Opencv矩阵行和列

标签 opencv

我有一个标签矩阵,用于训练大小为 (1 x 5) 的 SVM。5 个标签用于 5 个图像。

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

我尝试 reshape ,但没有奏效。我可以得到一些帮助如何更改矩阵大小。

谢谢

最佳答案

在这里要做的最简单的事情是创建一个新矩阵并一次复制一个元素。我不确定您的矩阵的结构是什么,但是假设第一个训练示例对应于您当前在形状不正确的矩阵的条目 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);
    }
}

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

关于Opencv矩阵行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17318435/

相关文章:

python - OpenCV (Python) 视频子图

python - 通过Python从图像中提取椭圆形食物盘

c# - IP摄像机(RTSP)和QR码

Python Opencv 利用霍夫圆变换从二值图像中检测圆

opencv - 旋转矩阵的微小变化完全破坏了立体声重建

python - 为什么不能发送cv2视频源?

python - 如何避免 libv4l2 资源忙于并行执行 python-opencv 代码?

c++ - '简历' : a namespace with this name does not exist while building (VS 2015, OpenCV 3.2)

python - 导入cv2错误,libcudart.so.6.5没有那个文件

opencv - 在深度图上找到曲率