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/
同様の問題を抱えているスタックでこのリンクを見つけましたが、答えは、画像が適切に読み取られているかどうかを知るためのコードでした(上記のコメント付きコード)。私はそうではないことを知っていますが、パスは問題ありません。