C++ OpenCV中int main(int argc,char**argv)中argc和argv的重要性
在以下程序中,用于在openCV中加载和显示图像C++ OpenCV中int main(int argc,char**argv)中argc和argv的重要性,c++,opencv,argv,argc,C++,Opencv,Argv,Argc,在以下程序中,用于在openCV中加载和显示图像 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; using namespace std; int main( int argc, char** argv ) { if( argc != 2)
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
if( argc != 2)
{
cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
return -1;
}
Mat image;
image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // Read the file
if(! image.data ) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}
namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", image ); // Show our image inside it.
waitKey(0); // Wait for a keystroke in the window
return 0;
}
#包括
#包括
#包括
使用名称空间cv;
使用名称空间std;
int main(int argc,字符**argv)
{
如果(argc!=2)
{
库特
例如:
display_image image1.jpg
这里,
该程序将通过一个指定文件名的参数从命令行调用:
$ display_image filename.jpg
在这种情况下,argv[1]
将是一个指向字符串“filename.jpg”的指针。当用户从命令行界面运行程序时,他们可以在键入程序名后指定文件路径:imdisplay image.jpg
argc
包含总参数数,包括程序名。因此,如果用户未键入图像名,则argc
为1。argv
是大小为argc
的char*
的数组。因此argv[0]
是用户键入的程序名,argc[1]
是第一个参数
if(argc!=2)
将在用户错误使用程序时发生。如果您使用的是Visual Studio
argv[1]对应于[项目属性]->[配置属性]->[Debug]
它可以设置图像名称和地址谢谢你的回复…但是我什么时候必须写“display_image iamge1.jpg”,我的意思是我们要在程序中编写它吗???@venus编译和链接程序时,它将生成一个与.cpp
文件同名的可执行文件。在终端(linux上)使用/display\u image image1.jpg
或在命令提示符(windows上)使用display\u image.exe image1.jpg
。有关更多详细信息,请单击google“如何在c++中使用命令行参数”@POW感谢您的指导…它很有效…再次感谢您的回复…但您所说的程序名是什么意思,它是项目中的.cpp文件名吗(即在Eclipse中)。我必须在哪里写imdisplay image.jpg???谢谢你的回答…但是文件名意味着什么…是图像名吗?我使用的是Eclipse,所以,我可以使用命令行界面吗?。如果我的问题听起来很傻,请原谅我打扰你。是的,这是一个命令行程序,你可以通过键入程序名,然后键入您要处理的文件。恐怕我对Eclipse一无所知,但我希望它能够为目标程序指定命令行参数。请参阅
argc will be 2
argv[0] points to display_image
argv[1] points to image1
if(argc !=2 )
^^ Checks whether no. of supplied argument is not exactly two
$ display_image filename.jpg