OpenCV学习备忘 Vol .一 显示图片

OpenCV学习备忘 Vol .1 显示图片

作者:Akira.Panda

参考书籍及资料

  • OpenCV中文社区
  • 《学习OpenCV》

内容提要

  • 显示图片

实验1 显示图片

准备工作

找一张jpg图片,放置于硬盘

代码

#include "highgui.h"
int main(int argc,char ** argv){
	char* fileName="C:\\Lena.jpg"; 
	char* windowTitle="Lena"; 
	IplImage *img=cvLoadImage(fileName); 
	cvNamedWindow(windowTitle,CV_WINDOW_AUTOSIZE); 
	cvShowImage(windowTitle,img); 
	
	cvWaitKey(0); 
	cvReleaseImage(&img); 
	cvDestroyWindow(windowTitle);
	return 0; 
}
 

OpenCV学习备忘 Vol .一 显示图片
 

 

代码解析

重要数据类型

  • IplImage  OpenCV中对图像的数据类型,其名字为什么叫这个可以Google一下

重要函数

  • IplImage* cvLoadImage(char* filePath)   加载一幅图片,OpenCV支持大部分常用的图片格式,这里我使用了是绝对路径的方法进行加载的。如果是用相对路径的同学请注意路径层次。如果是使用Windows的同学请注意分割符是"\\",前一个\是对后一个\的转移,这点应该大部分高级编程语言都有的。
  • int cvNamedWindow( const char* name, int flags )

    name为窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。name也可以理解为一个窗口的key值,通过这个key和其他组件进行通讯。

    flags参数是一些特殊的属性,比如这里使用的CV_WINDOW_AUTOSIZE是让该窗口根据内容大小自动适应大小。

  • void cvDestroyWindow( const char* name ); name为需要被销毁的window的key值
  • void cvShowImage( const char* name, const CvArr* image ); 

    name为对应窗口的标题值如果有对应的name值的window则图片会显示在该window,如无对应的则会新建一个新的窗体用于显示图片。

  • void cvReleaseImage( IplImage** image ) 用于销毁一个IplImage对象。和cvLoadImage可以说是对应的。

  • int cvWaitKey( int delay=0 )  键盘监听函数,参数delay键盘事件响应的延迟时间,返回值代表敲入键盘字符的具体值

Tips

  • 图片读取的路径是个关键很多童鞋因为路径不存在导致窗口显示一片灰色;
  • cvWaitKey函数在这个例子的作用其实只是让程序等待键盘时间,这样就不会立即销毁图片对象。如果你删除了这个函数可能会因为在创建后程序有立即执行了销毁窗口及图片的代码,导致一片灰色