PS:增加了保存视频的功能~~~(chenyusiyuan 2010-01-23)
一、系统环境
Windows XP SP3
Visual Studio 2008
OpenCV-2.0.0a-win32
二、main 函数输入参数 argc、argv 的意义(参见[1])
在学习笔记(1)中最后写到:“在Debug完成后,应该把原始图像放到项目文件夹的 debug 文件夹中,使图像与exe程序在同一文件夹内,才能在运行程序时正确读入并显示图像。”其实是有误的,图像不一定要与exe程序在同一文件夹内,在 cvLoadImage( argv[1] ) 中,可以把 argv[1] 改成项目文件夹里的图片的具体地址,若图片与程序同一文件夹,直接写图片的文件名即可。
但是,这种在程序代码中写文件名的方式很不方便,每次更改图片文件后都要重新编译,实际上应该在跑程序时不改argv[1],而是在调用时输入具体的文件名。要解决这个问题,就要理解好main 函数输入参数 argc、argv 的意义。
int main(int argc, char** argv)
int main(int argc, char* argv[])
argc 是指命令行输入参数的个数,argv 则存储了所有的命令行参数。假如我的一个程序是video_test.exe,如果在命令行运行该程序(首先应该在命令行下用 cd 命令进入到 video_test.exe 文件所在目录),要处理的文件有 v1.avi、v2.mpg,运行命令为:
video_test.exe v1.avi v2.mpg
那么,argc的值是 3,argv[0]是"video_test.exe",argv[1]是"v1.avi",argv[2]是"v2.mpg"。