在visual studio c ++的openCV编程中如果我得到argc = 1我无法加载图片,我该如何修复它?

时间:2015-08-09 12:02:26

标签: c++ opencv

我从openCV2本书复制此代码,此代码有argcargv作为参数,我不知道它们是什么以及为什么分配给1(argc=1)并终止调试...我的问题为什么argc=1?我怎么解决它?因为我的argc应为2(argc==2)...

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
  if ( argc ! = 2 )
  {
    printf( " usage: DisplayImage.out <Image_Path>\n" );
    return - 1;
  }
  Mat image;
  image = imread( argv[ 1], 1 );
  if ( ! image.data )
  {
    printf( " No image data \n" );
    return - 1;
  }
  namedWindow( " Display Image" , WINDOW_AUTOSIZE );
  imshow( " Display Image" , image);
  waitKey( 0);
  return 0;
}

我尝试在没有argcargv的情况下编写此代码,但调试器出现运行时错误,我认为其原因为argc

1 个答案:

答案 0 :(得分:0)

如果您通过命令行运行它,可以将其称为

DisplayImage "path_to_image"

如果您想从VS运行,请务必添加&#34; path_to_image&#34;在命令参数中:

  1. 项目 - &gt;属性 - &gt;配置属性 - &gt;调试
  2. 把&#34; path_to_image&#34;在命令参数中
  3. 确保&#34; path_to_image&#34;是一个有效的路径,请检查here以供参考。

    正如评论中已经指出的那样,这是一个非常糟糕的例子! 对于更复杂的输入参数,OpenCV 3.0.0也有CommandLineParser