如何制作与 MNIST 图像数据集相同的矩阵。

How can I make a matrix same as MNIST image dataset.

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

我在想可能是因为像素类型不同。 我注意到,当我从 MNIST 数据中查找单个矩阵时,它有 15 个小数点。但是我无法设置 15 个小数点。当我将图像设置为 CV_FC64 时。它显示以下错误消息。 "Assertion failed in cv::cvtColor, file C:\file path. "

主要代码适用于 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);
    }

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 是有意义的