垫子,在 ml opencv 中训练数据
Mat, training data in ml opencv
我是opencv的初学者。我还没有详细了解opencv的主要概念。
所以也许我的代码太笨了;
出于好奇,我想尝试像KNN,ANN这样的机器学习功能。我有一组大小为28 * 28像素的图像。我想做用于数字识别的训练卡西弗。所以首先我需要组装火车组和火车类;
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);
如何用float_data填充train_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);
但这当然是行不通的。 。 。请告诉我如何做对。或者至少建议傻瓜书:)
Mat train_data; // initially empty
Mat train_labels; // empty, too.
// for each img in the train set :
Mat img = imread("image_path");
Mat float_data;
img.convertTo(float_data, CV_32FC1); // to float
train_data.push_back( float_data.reshape(1,1) ); // add 1 row (flattened image)
train_labels.push_back( label_for_image ); // add 1 item
KNearest knn;
knn.train(train_data, train_labels);
对于其他 ML 算法来说都是一样的!
相关文章:
- OpenCV 和从 OutputArrays 或 (Mat) 读取数据
- OpenCV(C++)处理来自JavaScript / Web Assembly的图像数据
- 两个垫子的 OpenCV 数据是相同的,但使用 Mat::at 检索时的值已损坏
- OpenCV C++ 3 维垫数据访问错误值
- 将数据从 OpenCV C++传递到 NodeJS/JS |电子
- 如何将OpenCV图像数据从Python转换为C++?
- 如何将训练数据从UCI加载到OpenCV?
- 对来自csv文件的数据执行OpenCV k-means
- 这是我的程序,C++使用 OpenCv 库从数据集中读取图像序列,但它没有运行
- 使用python预处理后,C++(opencv)中的垫子类型数据与image_to_array相同
- 如何将OpenCV垫子转换为JPEG CHAR数据
- 将JPEG CHAR数据转换为OpenCV垫子
- 将 OpenCV 矩阵分配给数据结构
- opencv::Mat,从原始数据中获取像素值
- 使用 2D 数据创建 3D 直方图(OpenCV?
- OpenCV: cv::Mat 无法从看似有效的数据中创建矩阵
- 使用 OpenCV 和 Android NDK 转换数据格式
- OPENCV中的GSTREAMER不会通过UDP发送视频数据
- 使用原始数据OpenCV设置已分配的Mat
- 如何将Mat数据(OpenCV,图像的数据格式)转换为unity3d texutre