Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我的应用程序在KNearest::find_崩溃_C++_C_Opencv - Fatal编程技术网

C++ 我的应用程序在KNearest::find_崩溃

C++ 我的应用程序在KNearest::find_崩溃,c++,c,opencv,C++,C,Opencv,我想实现一个OCR功能 我已经收集了一些样本,我想使用K-Nearest来实现它 因此,我使用下面的代码加载数据并初始化KNearest KNearest knn = new KNearest; Mat mData, mClass; for (int i = 0; i <= 9; ++i) { Mat mImage = imread( FILENAME ); // the filename format is '%d.bmp', presenting a 15x15 image

我想实现一个OCR功能

我已经收集了一些样本,我想使用K-Nearest来实现它

因此,我使用下面的代码加载数据并初始化KNearest

KNearest knn = new KNearest;
Mat mData, mClass;
for (int i = 0; i <= 9; ++i)
{
    Mat mImage = imread( FILENAME ); // the filename format is '%d.bmp', presenting a 15x15 image
    Mat mFloat;
    if (mImage.empty()) break; // if the file doesn't exist

    mImage.convertTo(mFloat, CV_32FC1);
    mData.push_back(mFloat.reshape(1, 1));
    mClass.push_back( '0' + i );
}

knn->train(mData, mClass);
KNearest knn=新的KNearest;
Mat mData,McClass;

对于(inti=0;i我似乎找到了问题

我的示例图像是由cvtColor转换的灰度图像,但我的输入图像不是

我加上

cvtColor(mImage, mImage, COLOR_BGR2GRAY);
中间

if (mImage.empty()) break;
mImage.convertTo(mFloat, CV_32FC1);

find_nearest()返回一个值,我的应用程序就正常了。

尝试了解问题是find_nearest()还是restrape(),例如,只调用其中的第二个for@Velthune我认为问题在于find_nearest(),因为我让它们成为每行的一个调用。
if (mImage.empty()) break;
mImage.convertTo(mFloat, CV_32FC1);