我的OpenCV学习笔记(21):C语言描述的OpenCV程序

我之前的OpenCV的学习,都是C++的,主要的参数资料是用户手册和一本书《OpenCV 2 Computer Vision Application Programming Cookbook》(网上可以下载到,但是没有中文版),这本书的前七章的主要内容我基本都放到了博客上。(后面的内容有时间在与大家继续分享。)这本书最大的特点是通俗易懂—因为它是一本“Cookbook”。对很多理论性的内容,都是浅尝辄止的。而且由于C++的封装,程序里不会出现那么多的指针,这对于我这种C语言水平一般的人来说,已经很满足了。后来因为项目的需要,我的研究重点转移到了运动目标的检测跟踪和行为识别这个方向。而这本书在这两个领域的介绍就略显不足了。首先,它没有介绍机器学习库(ml),对视频的处理,也只是涉及到了使用高斯混合模型检测运动目标和光流法跟踪。于是乎我又不得不翻起OpenCV学习的书籍的鼻祖:《学习OpenCV》。

其实这本书我最开始的时候也是看过几页的,但是书中的第一个程序就让我犯难了:

#include 
#include 


int main( int argc, char** argv)
{
	
	IplImage* img = cvLoadImage( argv[1] );
	//IplImage* img = cvLoadImage( "D:/picture/img.tif" );
	cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE );
	cvShowImage("Example1", img );
	cvWaitKey(0);
	cvReleaseImage( &img );
	cvDestroyWindow("Example1");
	return 0;
}

因为有C++版本学习的经验,所以用注释掉的那一行程序,而不是上面的一行,就可以完成读取图像的操作,可是源程序中到底如何使用命令行传递参数呢?

回过头来想想,这其实是一个非常SB的问题。主要是我被VS2010这个编译器惯坏了,每次程序一写好,我就点一下启动调试(就是那个绿三角),整个编译器把从源代码到编译,链接,执行等工作一口气帮我做了。可事实上,程序的编译和执行根本是两码事!

我们还记得在linux下C语言编程时,对一个需要传入参数C程序,我们使用makefile编译完以后,执行时在后面加上附带的参数就行了。这里其实也是一样的!把程序写好以后,选择编译。然后在windows的命令行模式(cmd)下运行,运行时输入需要传给函数的参数即可:

我的程序是在D:/OpenCV test/C/显示图像中,运行的时候找到Debug里面的exe文件,带上参数执行就行了。

这样执行的时候,就能看到图像了!

你可能感兴趣的:(我的OpenCV学习笔记(21):C语言描述的OpenCV程序)