0

OpenCV に問題があり、Assertion failed エラーが発生しました。画像の読み取りに問題があるように見えるため、関数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