我试图制作一个矢量矩阵,它与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);
}
答案 0 :(得分:0)
cvtColor
仅允许8U
,16U
和32F
位深度。因此,在您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。