为什么 readImageLists 无法读取我在 txt 文件中的图像列表?
Why does the readImageLists can't read my image list in txt file?
当我使用 vs2013+opencv3.0 到 运行 我的项目时,我发现函数 "imread" 无法读取图像,除非 image_list.There 中只有一行有人说是因为 "readImageList" 函数无法识别 txt 文档中的换行符,我不知道如何 do.Does 谁能解决这个问题?
string model_path = "E:\images\opencv3.0\opencv_contrib-master\modules\dpm\samples\data\inriaperson.xml";
string image_dir = "E:\images\opencv3.0\DPMopencv\INRIAPerson";
string image_list = "E:\images\opencv3.0\DPMopencv\INRIAPerson\Test\pos1.lst";
if( model_path.empty() || image_dir.empty() )
{
help();
return -1;
}
vector<string> imgFileList;
if ( !readImageLists(image_list, imgFileList) )
return -1;
for (size_t i = 0; i < imgFileList.size(); i++)
{
double t = (double) getTickCount();
vector<DPMDetector::ObjectDetection> ds;
string imageFile = image_dir + "\" + imgFileList[i];
Mat image = imread(imageFile);
frame = image.clone();
if (image.empty()) {
cerr << "\nInvalid image:\n" << imgFileList[i] << endl;
return -1;
}
我已经通过改变读取image_list文件的方式解决了这个问题:
string model_path = "E:\images\opencv3.0\opencv_contribmaster\modules\dpm\samples\data\inriaperson.xml";
if (model_path.empty())
{
help();
return -1;
}
Mat frame;
string Image;
ifstream fin("E:\images\opencv3.0\DPMopencv\INRIAPerson\pos.lst");
for (int i = 1; i <= 100 && getline(fin, Image); i++)
{
double t = (double)getTickCount();
vector<DPMDetector::ObjectDetection> ds;
Image = "E:\images\opencv3.0\DPMopencv\INRIAPerson\" + Image;
Mat frame = imread(Image);
Mat image = frame.clone();
imshow("init", frame);
if (Image.empty()) {
cerr << "\nInvalid image:\n" << endl;
return -1;
}
当我使用 vs2013+opencv3.0 到 运行 我的项目时,我发现函数 "imread" 无法读取图像,除非 image_list.There 中只有一行有人说是因为 "readImageList" 函数无法识别 txt 文档中的换行符,我不知道如何 do.Does 谁能解决这个问题?
string model_path = "E:\images\opencv3.0\opencv_contrib-master\modules\dpm\samples\data\inriaperson.xml";
string image_dir = "E:\images\opencv3.0\DPMopencv\INRIAPerson";
string image_list = "E:\images\opencv3.0\DPMopencv\INRIAPerson\Test\pos1.lst";
if( model_path.empty() || image_dir.empty() )
{
help();
return -1;
}
vector<string> imgFileList;
if ( !readImageLists(image_list, imgFileList) )
return -1;
for (size_t i = 0; i < imgFileList.size(); i++)
{
double t = (double) getTickCount();
vector<DPMDetector::ObjectDetection> ds;
string imageFile = image_dir + "\" + imgFileList[i];
Mat image = imread(imageFile);
frame = image.clone();
if (image.empty()) {
cerr << "\nInvalid image:\n" << imgFileList[i] << endl;
return -1;
}
我已经通过改变读取image_list文件的方式解决了这个问题:
string model_path = "E:\images\opencv3.0\opencv_contribmaster\modules\dpm\samples\data\inriaperson.xml";
if (model_path.empty())
{
help();
return -1;
}
Mat frame;
string Image;
ifstream fin("E:\images\opencv3.0\DPMopencv\INRIAPerson\pos.lst");
for (int i = 1; i <= 100 && getline(fin, Image); i++)
{
double t = (double)getTickCount();
vector<DPMDetector::ObjectDetection> ds;
Image = "E:\images\opencv3.0\DPMopencv\INRIAPerson\" + Image;
Mat frame = imread(Image);
Mat image = frame.clone();
imshow("init", frame);
if (Image.empty()) {
cerr << "\nInvalid image:\n" << endl;
return -1;
}