Я новичок в opencv. Я не получил основных концепций opencv в деталях.Мат, данные тренировки в мл opencv
Так что, может быть, мой код слишком тупой;
Из моего любопытства я хочу попробовать функции машинного обучения, такие как KNN, ANN. У меня есть набор изображений размером 28 * 28 пикселей. Я хочу сделать cassifier для распознавания цифр. Поэтому сначала мне нужно собрать комплекты поездов и поездов;
Mat train_data = Mat(rows, cols, CV_32FC1);
Mat train_classes = Mat(rows, 1, CV_32SC1);
Mat img = imread(image);
Mat float_data(1, cols, CV_32FC1);
img.convertTo(float_data, CV_32FC1);
Как заполнить train_data с помощью float_data? Я думал, что это было чем-л так:
for (int i = 0; i < train_data.rows; ++i)
{
... // image is a string which contains next image path
image = imread(image);
img.convertTo(float_data, CV_32FC1);
for(int x = 0; x < train_data.cols; x++){
train_data.at<float> (i, x) = float_data.at<float>(x);;
}
}
KNearest knn;
knn.train(train_data, train_classes);
, но это, конечно, не работает. , , Пожалуйста, скажите, как это сделать правильно. Или, по крайней мере, предложите книги для манекенов :)