如何使矩阵与MNIST图像数据集相同。

时间:2016-10-12 04:30:48

标签: c++ opencv mnist

我试图制作一个矢量矩阵,它与MNIST图像数据集相同。 捕获来自网络摄像头的每个图像并将其存储到矢量中。但是,我创建的矩阵与MNIST数据集不同。所以主代码对我创建的矩阵不起作用。

我在想,也许是因为像素类型不同。 我注意到的是,当我从MNIST数据中查找单个矩阵时,它有15个小数点。但是我无法设置15个小数点。当我将图像设置为CV_FC64时。它显示以下错误消息。 "断言在cv :: cvtColor中失败,文件C:\文件路径。 "

主要代码适用于MNIST数据集..我不知道该怎么做..

请咨询。我。

 while (1)
    { 
        cap >> src;

        src.convertTo(src, CV_64FC1);
        src = src / 256;

        cvtColor(src, src_gray, CV_RGB2GRAY);
        resize(src_gray, src_N, size);
        testX.push_back(src_N);
    }

1 个答案:

答案 0 :(得分:0)

cvtColor仅允许8U16U32F位深度。因此,在您convertTo(..., CV_64FC1)之后,位深度为64F并且断言失败:https://github.com/opencv/opencv/blob/84699e0e1860a3485e3dfc12230fbded955dba13/modules/imgproc/src/color.cpp#L8676

     CV_Assert( depth == CV_8U || depth == CV_16U || depth == CV_32F );

如果你真的需要64F,那么首先cvtColor是有意义的,然后使用convertTo将比特深度增加到64F。