(一)HighGui是什么?
HightGui是一个可以移植的图形工具包。
OpenCV将与操作系统,文件系统,摄像机之类的硬件进行交互的一些函数纳入HighGui(high-level graphical user interface)库中,有了HighGui,我们可以方便的打开窗口,显示图像,读出或者写入图像相关的文件(包含图像与视屏),处理简单的鼠标,光标和键盘事件。也可以使用HighGui创建其他一些很有用的控件,如滑动条,并把它加入窗口。
为了好理解,我们认为OpenCV中的HighGui可以分为三部分-------硬件相关部分,文件部分以及图像用户界面部分
注:事实上,HighGui的结构实现与我们所表述的不尽相同,HighGui函数实际别划分为 “视屏输入\输出”,”图像输入\输出“,”GUI工具“三部分。
(1),硬件相关部分最主要的就是对于摄像机的操作,在大多操作系统下,与摄像机交互是一件很复杂并且很痛苦的工作。HighGui提供了一种从摄像机中获取图像的简单方法,所有繁琐工作都在HighGui内部完成,这让我们很开心。
(2),文件系统部分的主要工作是载入和保存图像文件。HighGui一个很好的特点就是可以用读取摄像机视屏相同的方法读入视屏文件。这使得我们可以省去从各种特定设备中读取数据的麻烦,而专心于我们感兴趣的代码部分,同样地,HighGui为我们提供了一对函数来读入与保存图像,这两个函数根据文件名的后缀,自动完成所有编码和解码工作。
(3),HighGui的第三部分是窗口系统(或者成为GUI),HighGui提供一些简单的函数用来打开窗口以及将图像显示在窗口中。它同时给我们提供了为窗口加入鼠标,键盘相应的方法。这些函数为我们很快建立一个简单的程序提供了很大的帮助
下面通过实现一些功能来介绍HighGui。
(1)创建窗口与释放窗口
首先要做的就是在显示屏上显示一副图像。可以使用cvNamedWindow()函数实现这个功能;释放该窗口使用函数cvDestroyWindow()
int cvNamedWindow( const char * name, int flag = CV_WINDOW_AUTOSIZEd )
第一个参数::用来表示新窗口的名称,这个名称显示在窗口的顶部,同时用作HighGui中其他函数调用窗口的句柄
/第二个参数::是一个标志,用来表示是否需要使窗口大小自动适应读入的图像的大小,flag可以取0或者CV_WINDOW_AUTOSIZE
程序实例
cvNamedWindow("原图",CV_WINDOW_AUTOSIZE );
cvDestroyWindow( const char * name); //参数为要释放的窗口名称;
程序实例
cvDestroyWindow("原图");
(2)载入图像与保存图像
</