【OpenCV自学(三)】HighGUI超基本操作

OpenCV基础操作

HighGui基本操作

毛耀升 | | 2018.06. 07

设计简介

HIGHGUI的用途包括三个方面:硬件部分(调用摄像机为主的工作)、文件系统部分(在如何保存图像文件为主的工作)、窗口系统(GUI、主要操作为创建窗口以及窗口组件)。

本次设计的目的很简单,使用OpenCV的方法,调用到本地的图片并且显示,实现基本的几个HIGHGUI的方法。

设计环境

IDE:Visual Studio 2015

Library:OpenCV 3.4.1

设计效果

【OpenCV自学(三)】HighGUI超基本操作

操作:点击ESc以及Space键可结束程序

代码解释以及其他类似用法

 

   namedWindow("HIGHGUI FOR TEST");

    该方法用于创建一个窗口,第一个参数为窗口的名称(TITLE),第二个参数为窗口的尺寸,一般只使用0或者CV_WINDOW_AUTOSIZE,使用前者可由用户手动调整窗口大小,使用后者则由电脑自动调整窗口大小以适应图像大小。注意:该方法的返回值一般可以为int类型。

 

   resizeWindow("HIGHGUI FOR TEST", 250, 250);

该方法用于修改窗口的大小,其中第一个参数为需要修改尺寸的窗口的名称,后两个参数分别为宽和高,由编程者自行输入,或者由用户自行输入(比较少)。

 

   IplImage* img=cvLoadImage("…/test.jpg", CV_LOAD_IMAGE_ANYDEPTH);

该方法同imread()方法十分相似,同样用于载入图像,参数为图像路径与载入设定的深度或者通道数,其返回值为图像类指针。

   

   cvShowImage("HIGHGUI FOR TEST", img);

该方法同imshow()方法十分相似,同样用于显示图像,参数为窗口以及对应图像的图像类指针

 

   while (1) {

      if (waitKey(300) == 32 || waitKey(300) ==27)

         break;

   }

使用WaitKey()方法可以通过键入键盘内容结束程序,此循环语句表示在100ms的触发事件时间内,如果用户未键入ESC(ASCII码为27)或者SPACE(ASCII码为32),则保持一直循环,即保持窗口。

如果对WaitKey()方法是用参数 0 ,则可以保证该方法无限期的等待,直到用户自行关闭窗口或用其他方法终止程序。

   destroyWindow("HIGHGUI FOR TEST");

该方法用于销毁一个特定窗口,类似的摧毁窗口的方法还有destroyAllWindows(),该方法可销毁当前状态下的所有窗口。销毁窗口操作作用在于清理释放窗口所占用的内存空间。

参考、引用内容

本报告系列主要参考书目《学习OpenCV》中文版(gray Bradski & adrian kaehler著 于仕琪 刘瑞祯 译)

报告模板采用MicrosoftOffice Word 2013自带模板

全文字体采用YaHei Consolas Hybrid

封面页眉页尾图片源自百度

设计心得

本次设计属于非常基础的HIGHGUI操作,尝试在下次操作中加入HIGHGUI的组件(比如Mouse、Sliders、Trackbars、Switchers等),尝试在之后的设计中尽快实现例如使用鼠标作图简单图形的操作。