내 프로젝트를 실행하기 위해 vs2013 + opencv3.0을 사용할 때, "imread"함수는 image_list에 한 줄만 있으면 이미지를 읽을 수 없다는 것을 발견했습니다. 누군가 "readImageList"함수가 인식 할 수 없기 때문이라고 말합니다. txt 문서의 줄 바꿈, 방법을 모르겠습니다. 누구든지이 문제를 해결할 수 있습니까?
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;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다