【问题标题】:How can I make a matrix same as MNIST image dataset.如何制作与 MNIST 图像数据集相同的矩阵。
【发布时间】:2016-10-12 12:47:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ opencv mnist


    【解决方案1】:

    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。

    【讨论】:

    • 谢谢!这就是解决方案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2019-12-09
    • 2019-10-30
    • 2016-10-23
    • 2021-06-12
    • 2019-11-29
    相关资源
    最近更新 更多