HighGUI模块为高层GUI图形用户界面模块,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。
在写简单的OpenCV程序的时候,以下三句话可以作为标配
#include
#include
using namespace cv;
Mat imread(const string& filename, intflags=1);
(1) 第一个参数,const string&类型的filename,填入需要载入的图片的路径名。
(2) 第二个参数,int类型的flags,为载入标识,它指定一个加载图像的颜色类型。
enum
{
CV_LOAD_IMAGE_UNCHANGED = -1,
CV_LOAD_IMAGE_GRAYSCALE = 0,//灰度图
CV_LOAD_IMAGE_COLOR = 1,//彩色图
CV_LOAD_IMAGE_ANYDEPTH = 2,//深度图
CV_LOAD_IMAGE_ANYCOLOR = 4
};
void imshow(const string& winname, InputArray mat);
(1) 第一个参数:const string&类型的winname,填需要显示的窗口标识名称。
(2) 第二个参数:InputArray类型的mat,填需要显示的图像。
namedWindow函数用于创建一个窗口。若是简单地进行图片显示,可以略去namedWindow函数的调用,即先调用imread读入图片,然后用imshow直接指定出窗口名进行显示。
void namedWindow(const string & winname,int flags= WINDOW_AUTOSIZE);
(1) 第一个参数,填写被用作窗口的标识符的窗口名称
(2) 第二个参数,int类型的flags,窗口的标识,可以填如下几种值。
WINDOW_NORMAL,设置这个值,用户可以改变窗口的大小。
WINDOW_AUTOSIZE,设置这个值,窗口大小会自动调整以适应所显示的图像
··· WINDOW_OPENGL设置这个值,窗口会支持OpenGL
destroyWindow()或者destoryAllWindows()来关闭窗口,并取消之前非配的与窗口相关的所有内存空间。但是事实上,对于代码量不大的简单程序来说,我们完全没有必要手动调用上述的destoryWindow()或者destoryAllWindow()函数,因为在退出时,所有的资源和应用程序的窗口会被操作系统自动关闭。
6. 输出图像到文件
Bool imwrite(const string& filename,InputArray img,const vector& params=vectoe());
(1) 第一个参数,const string&类型的filename,填入需要写入的文件名。要带上后缀。
(2) 第二个参数,InputArray类型的img,一般填一个Mat类型的图像数据。
(3) 第三个参数,const vector&类型的params,表示为特定格式保存的参数编码。它有默认值vector(),所以一般情况下不需要填写。
滑动条是OpenCV动态调节参数特别好用的一种工具,它依附于窗口而存在。由于OpenCV中并没有实现按钮的功能,所以很多时候,我们还可以用仅含0-1的滑动条来实现按钮的按下,弹起效果。
Int createTrackbar(conststring& trackbarname,conststring& winname,int* value,int count,TrackbarCallback onChange=0,void* userdata=0);
(1) 第一个参数,const string&类型的trackbarname,轨迹条的名字。
(2) 第二个参数,窗口名字,表示这个轨迹条会依附到哪个窗口上。
(3) 第三个参数,一个指向整型的指针,表示滑块的位置。在创建时,滑块的初始位置就是该变量当前的值。
(4) 第四个参数,int类型的count,表示滑块可以达到的最大位置的值。滑块最小位置的值始终为0.
(5) 第五个参数,TrackbarCallback类型的onChange,它有默认值0。这个是一个指向回调函数的指针,每次滑块位置改变时,这个函数都会进行回调。并且这个函数的原型必须是void XXXX(int, void*);其中第一个参数是轨迹条的位置,第二个参数是用户数据。
(6) 第六个参数,void*类型的userdata,也有默认值0。这个参数是用户传给回调函数的数据,用来处理轨迹条时间。如果使用的第三个参数是全局变量的话,完全可以不用去管这个userdata参数。
Int getTracebarPos(conststrings& trackbarname,conststring& winname);
(1) 第一个参数,const string&类型的trackbarname,表示轨迹条的名字。
(2) 第二个参数,const string&类型的winname,表示轨迹条的父窗口的名称。
Void setMouseCalback(const string& winname,MouseCallback onMouse,void* userdata=0)
(1) 第一个参数,const string&类型的winname,窗口的名字
(2) 第二个参数,MouseCallback类型的onMouse,指定窗口里每次鼠标时间发生的时候,被调用的指针。
(3) 第三个参数,void*类型的userdata,用户定义的传递到回调函数的参数。