C++ openCV基本\u字符串::\u S\u构造null无效
我是第一次使用openCV,我遵循了安装指南(对于带有EclipseCDT的linux)并尝试运行示例程序,但我一直收到以下错误消息。 在抛出“std::logic_error”实例后调用terminate what():基本\u字符串::\u S\u构造null无效C++ openCV基本\u字符串::\u S\u构造null无效,c++,opencv,eclipse-cdt,C++,Opencv,Eclipse Cdt,我是第一次使用openCV,我遵循了安装指南(对于带有EclipseCDT的linux)并尝试运行示例程序,但我一直收到以下错误消息。 在抛出“std::logic_error”实例后调用terminate what():基本\u字符串::\u S\u构造null无效 #include<cv.h> #include<highgui.h> using namespace cv; int main( int argc, char** argv ){ Mat image;
#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;
#包括
#包括
使用名称空间cv;
int main(int argc,字符**argv){
Mat图像;
image=imread(argv[1],1);
if(argc!=2 | |!image.data)
{
printf(“无图像数据”);
返回-1;
}
namedWindow(“显示图像”,CV\u窗口\u自动调整大小);
imshow(“显示图像”,图像);
等待键(0);
返回0;
}我在最终让OpenCV库链接后遇到了同样的问题。当您尝试读取图像时,可能正在运行可执行文件,但没有参数导致argv[1]为Null。对于我来说,在eclipse上的解决方案是在命令提示符下用一个参数直接调用该文件;“testOpenCV.exe imageFile.png”。很明显,我使用的是windows,但在linux终端中,只要用一个参数调用可执行文件就可以了。问题是什么?在检查错误案例之前,请使用
argv[1]
2,所以如果我是你,我就开始找了。如果argc==1
则argv[1]
为空。我猜argv[1]
恰好为空。我正在通过eclipse通过运行配置传递参数argv,@SteveJessop您的意思是在使用argv[1]之前检查argc,我这样做了,但问题相同。@SteveJessop:它没有未指定的值,作为数组中不存在的元素?@LightnessRacesinOrbit:不,不是argv
以null结尾,并且argc
不包括null。只说“您的argv[1]为null”就够了