0

我在使用 OpenCV 时遇到问题,并且断言失败错误。读取图像似乎有问题,因此函数imread()静默失败,然后在resize()函数中崩溃,因为输入图像为空。

我检查了路径,没关系,事实上,如果我打印我试图读取的路径并在终端图像中打开路径打开就好了。此外,如果我采用我打印的这条路径并将其放入字符串变量代码中。所以问题似乎出在ss对象上。我只是不知道是什么。

这是我的代码:

int main(int argc, char** argv ){
  cout << "Prueba OpenCV \n";
  char* path;
  Mat input;

  if(argc >= 2 )
  {
    path = argv[1];
    for(int j=0; j< numFiles; j++){
       cout << "Character "<< OCR::strCharacters[1] << " file: " << j << "\n";
       stringstream ss(stringstream::in | stringstream::out);
       ss << path << OCR::strCharacters[1] << "/" << j << ".jpg" << "\n";
       cout << "Character file: " <<  ss.str() << "\n";
       Mat img=imread(ss.str(), 0);
       /*if (img.cols == 0) {
         cout << "Error reading file " << ss << endl;
         return -1;
       }*/ 
       Mat lowData;
       resize(img, lowData, Size(5, 5) );

    }
  }
}

运行这个:

./PruebaOpenCV samples/

我在堆栈中发现这个链接有类似的问题,但答案只是一段代码,可以知道图像是否被正确读取(上面的注释代码)。我知道我的不是,但路径还可以。

4

0 回答 0