在Visual Studio中进行OpenCV的C++编程的准备工作

                                                           1.包含头文件

    在Visual Studio中进行OpenCV的C++编程,首先需要进行“包含说明”,即"#include<xxx>",将一些OpenCV所定义的函数包含进去。这样,在进行编译时,编译器就可以将我们需要的函数编译成需要的功能,而非把它们当做是一堆乱码。

    不同的功能需要包含不同的头文件在代码中。

    若需要在屏幕上输出文字,则需要“iostream”即“输入输出流”。

    若需要使用字符串,则需要“string”。

    在不清楚一些应用应该使用哪些包含文件时,可以多看一些OpenCV在“source\sample\cpp”中自带的例程来学习和了解。

                                                            2.using namespace

    这个功能一般在C++编程中都会见到,但在C编程中我则没有见过。

   据说通过增加这个语句“using namespace cv;”可以简化后面所有的代码,即,不需要输入“cv::xxx”,而是只需输入“xxx”即可进行函数或变量的声明或调用。

    另一条是“using namespace std;”具体含义我还不是很清楚,但这一句貌似也是必须得使用的。

                                                            3.带参数的main函数

    以前所见过的简单编程所涉及的main主函数,都是“main()”的样子,或者“int main()”,都是没有参数的主函数。但实际上,很多例程使用的主函数都是有参数的主函数。例如之前我测试的标定相机的例程“calibration.cpp”的主函数就是下面这个样子:

int main( int argc, char** argv )

    根据查阅的资料:

    argc 是 argument count的缩写,表示传入main函数的参数个数。

    argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个。

    下面的例子可以大概解释这个用法。

    若要进行相机标定例程的调试,则需要直接在Visual Studio环境下运行程序,而非通过生成的“exe”文件进行运行,则需要给出main函数的初值,以下:

argc = 6;

argv[0] = "demo.exe";

argv[1] = "-w";
argv[2] = "6";
argv[3] = "-h";
argv[4] = "9";

argv[5] = "imagelist.yaml";

    以上方式在C++代码中定义main函数的输入值与如下的在命令行中使用该函数的效果是相同的。

关于带参数的main函数的更详细内容,可以参考以下两篇文章:

https://blog.csdn.net/t247555529/article/details/47836233

https://blog.csdn.net/dcrmg/article/details/51987413


  

猜你喜欢

转载自blog.csdn.net/yibeiyese/article/details/80635939
今日推荐