您的位置:首页 > 运维架构

OpenCV入门之显示图像

2010-03-21 15:03 267 查看
配置好VC后,开始OpenCV的旅程吧.下面开始一个简单的小程序学习OpenCV,这个程序来自书籍《学习OpenCV》,并且目前我所有的OpenCV笔记都是来自学习《学习OpenCV》这本书时的记录.

#include "highgui.h"

int main()
{

IplImage * imag = cvLoadImage("5大美女.jpg");

cvNamedWindow("美女",CV_WINDOW_AUTOSIZE);

cvShowImage("美女",imag);

cvWaitKey(0);

cvReleaseImage(&imag);

cvDestroyWindow("美女");
return 0;
}


这个小程序的目的是弹出一个窗口并显示图片5大美女.jpg,这个图片是放到我们的工程目录里的,所以使用了相对路径.如果你的图片位置跟我们的工程目录无关,那你就需要使用绝对路径了.

效果图:

好了,让我们一句句分析下这小段代码吧:

IplImage* img = cvLoadImage("5大美女.jpg");


cvLoadImage()函数,可以读取却大多数格式类型的图书文件,他是将图像文件加载到内存,并返回一个IplImage结构体指针.

cvNamedWindow("美女",CV_WINDOW_AUTOSIZE);


这句代码是用来给显示图片的窗口命名,并指定相关属性的.第一个参数为窗口的名字,第二个参数指针窗口的属性为自适应图片大小.其实这个函数很类似我们win32编程里的CreateWindow().

cvShowImage("美女",imag);


这句代码就是用来显示图片的,第一个参数是用来指定在那个窗口进行显示,第二个参数为一个IplImage的结构体指针,它指定了所要显示的图片.

cvWaitKey(0);


到上面那句代码,其实我们显示图片的功能已经实现了,那这句代码又是干什么用的呢?其实从名字我们已经可以看出来了,它的功能是用来实现一个暂停操作,使程序暂停等待用户触发一个按键操作.但是如果它的参数为一个整数,程序将只暂停一段时间,时间长为该整数值,单位:毫秒.然后继续执行程序,即使用户没有按下任何键.但设置参数为0或负数时,程序将一直等待用户触发按键操作.

cvReleaseImage(&imag);

cvDestroyWindow("美女");


玩过窗口编程的朋友一眼就可以看出上面两句代码的作用是用来释放资源的。其实这两句是没有必要的,因为我们关闭窗口后,所有的资源都会跟着释放,但是,好的习惯是有必要养成的.

好了,这就是OpenCV的简单显示图像的功能,够简单吧.呵呵...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: