4,499
社区成员




// 2个容器来存放图像数据和对应的标签
vector<Mat> images;
vector<int> labels;
try {
read_csv(fn_csv, images, labels);
}
catch (cv::Exception& e) {
cerr << "Error opening file \"" << fn_csv << "\". Reason: " << e.msg << endl;
// 文件有问题,我们啥也做不了了,退出了
exit(1);
}
// 如果没有读取到足够图片,我们也得退出.
if (images.size() <= 1)
{
string error_message = "This demo needs at least 2 images to work. Please add more images to your data set!";
CV_Error(CV_StsError, error_message);
}
int size = images.size();
for (int i = 0; i < size; i++)
{
Mat mat; // mat是临时变量
mat = images[i].clone();// 包括数据的深度复制,以防对mat数据的更改
img = cvCreateImage(cvSize(mat.cols, mat.rows), IPL_DEPTH_8U, 1); //根据实际进行初始化
img->imageData = (char*)mat.data;
img2 = cvCreateImage(cvSize(img->width, img->height), IPL_DEPTH_8U, 3);//imag2是3通道图
cvCvtColor(img, img2, CV_GRAY2BGR);//进行单通道与3通道的变换
下面省略}