opencv中highgui库中的函数集合

1. int cvNamedWindow(const char* name,int flags=CV_WINDOW_AUTOSIZE)  创建窗口函数

name:表窗口的名字,此名称显示在窗口的顶部
flags:用来表示是否需要使窗口大小自动适应度入的图像大小,其有效值分别是0和默认值CV_WINDOW_AUTOSIZE.如果是CV_WINDOW_AUTOSIZE,表示窗口大小会随着图像的载入而根据图像的大小调整,用户没法手动调整窗口大小。如果为0,用户可随意调整窗口大小。

一旦窗口创建成功,就能使用窗口的名称来表示窗口。

cvDestroyWindow(),接收一个字符串参数(即窗口创建时所指定的名称),用于释放窗口。

cvResizeWindow(const char* name,int weight,int height)宽高以像素为单位,指定窗口可以显示的部分。此函数用于调整窗口大小。


2. IplImage* cvLoadImage(const char* filename,int iscolor = CV_LOAD_IMAGE_COLOR)   加载图像函数

cvLoadImage()加载图像时,通过分析图像文件的前几个字节来确定图像编码格式。
iscolor:默认(即CV_LOAD_IMAGE_COLOR),表示不管原始图像的通道数是多少,都将转换成3个通道读入,每个通道8位。
若是CV_LOAD_IMAGE_GRAYSCALE,表示将图像强制转换成单通道,其值为0。
若是CV_LOAD_IMAGE_ANYCOLOR,表示保持原始图像通道书的方式读入,其值为4。
若是CV_LOAD_IMAGE_ANYDEPTH,表示读入非8位的图像,其值为2。
若是CV_LOAD_IMAGE_UNCHANGED,表示读入数据与原始图像通道数及位数保持一致,其值为-1。

例:若要读入16位彩色图像,应将iscolor设置为CV_LOAD_IMAGE_ANYDEPTH   |   CV_LOAD_IMAGE_COLOR。

此函数如果读入失败,不会产生一个运行时错误,而是返回一个空指针。


   

3.  int cvSaveImage(const char* filename,const CvArr* image)    保存图像函数

filename:文件名,后缀部分表示图像存储的编码格式。
image :指向要存储图像数据的指针。可以用ImlImage*参数传入。

只能存储8位通道或3通道的图像,而png,tiff,或jpg2000允许16位甚至浮点个事类型图像,同事也支持4通道(BGRA)的图像。
当存储成功返回1,存储失败返回0.



4.  void cvShowImage(const char* name,const CvArr*image)   显示图像

name:指定用来显示图像的窗口。
image;指向需要显示的图像。

5.  void cvReleaseImage(IplImage** image) 图像销毁

image为已定义的IplImage* 的指针。

释放为图像文件分配的内存,最后image指针将被设置为NULL。


6.  int waitKey(int delay=0)

功能是不断刷新图像,频率时间为delay,单位为ms。返回值为当前键盘按键值(ASCII 码)。

delay>0,   表示在一个给定时间内等待用户按键触发,如果在给定时间内用户按下一个键,函数返回用户按下的键,否则,返回0。
delay<=0,表示如果没有键盘触发,则一直等待,否则返回值为键盘按下的码字。


一般运用:
经常程序里面出现if( cvWaitKey(10) >= 0 ) 。首先cvWaitKey(10)代表在当前状态下等待十毫秒,整句的意思就是如果在十毫秒内按下任意键就进入if子句中,若无按键,返回-1。其作用是控制帧率(即一秒读取多少帧)。举个例子:如果出现在摄像头调用中,10就代表摄像头画面刷新间隔,按下任意键则可以进入if子句(一般是用break跳出循环,结束调用)。


#include"opencv\highgui.h"
int main(int argc,int argv[]){
	cvNamedWindow("showImage",0);
	IplImage* img = cvLoadImage("F:\\lena.jpg",CV_LOAD_IMAGE_ANYCOLOR|CV_LOAD_IMAGE_ANYDEPTH); //注意图像文件路径,两个反斜杠,前一个表转义,后一个为文件路径中本身含有的
	cvShowImage("showImage",img);
	cvWaitKey(0);//停在显示图像的界面,一直等待用户按键按下
	cvReleaseImage(&img);
	cvDestroyWindow("showImage");
	return 0;
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值