我遇到OpenCV和Assertion失败错误的问题。它似乎在读取图像时出现问题,因此函数 imread()无声地失败,然后在 resize()函数中它崩溃,因为输入图像为空。
我已经检查了路径并且没关系,事实上如果我打印我正在尝试阅读的路径并在终端图像中打开 open path 就可以了。另外,如果我采用我打印的这条路径并将其放入字符串变量代码中。所以问题似乎与 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/
我发现堆栈中的this链接有类似的问题,但答案只是一段代码,知道图像是否被正确读取(上面的注释代码)。我知道我的不是,但路径还可以。