我第一次使用openCV,我已经按照安装指南(对于带有eclipse CDT的linux)并尝试运行示例程序,但我不断收到以下错误消息。 在抛出'std :: logic_error'的实例后终止调用 what():basic_string :: _ S_construct null无效
#include<cv.h>
#include<highgui.h>
using namespace cv;
int main( int argc, char** argv ){
Mat image;
image = imread( argv[1], 1 );
if( argc != 2 || !image.data )
{
printf( "No image data \n" );
return -1;
}
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
waitKey(0);
return 0;
}
答案 0 :(得分:0)
最终让我的OpenCV库链接后,我遇到了同样的问题。您可能在没有参数的情况下运行可执行文件,导致当您尝试执行图像读取时argv [1]为空。在eclipse上,我的解决方案是在命令提示符下直接使用参数调用文件; “testOpenCV.exe imageFile.png”。我显然是在使用Windows,但是只需在linux的终端中使用参数调用可执行文件就可以了。