直播平台搭建,OpenCV HighGUI图形用户界面设计

HighGUI模块为高层GUI图形用户界面模块,直播平台搭建包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。

  1. opencv的.h文件
    在写简单的OpenCV程序的时候,以下三句话可以作为标配
    #include
    #include
    using namespace cv;

  2. 图像的载入
    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
    };

  3. 图像的显示
    void imshow(const string& winname, InputArray mat);
    (1) 第一个参数:const string&类型的winname,填需要显示的窗口标识名称。
    (2) 第二个参数:InputArray类型的mat,填需要显示的图像。

  4. 创建窗口
    namedWindow函数用于创建一个窗口。若是简单地进行图片显示,可以略去namedWindow函数的调用,即先调用imread读入图片,然后用imshow直接指定出窗口名进行显示。
    void namedWindow(const string & winname,int flags= WINDOW_AUTOSIZE);
    (1) 第一个参数,填写被用作窗口的标识符的窗口名称
    (2) 第二个参数,int类型的flags,窗口的标识,可以填如下几种值。
    WINDOW_NORMAL,设置这个值,用户可以改变窗口的大小。
    WINDOW_AUTOSIZE,设置这个值,窗口大小会自动调整以适应所显示的图像
    ··· WINDOW_OPENGL设置这个值,窗口会支持OpenGL

  5. 关闭窗口
    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(),所以一般情况下不需要填写。

  7. 滑动条的创建和使用
    滑动条是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参数。

  8. 获取当前轨迹条的位置
    Int getTracebarPos(conststrings& trackbarname,conststring& winname);
    (1) 第一个参数,const string&类型的trackbarname,表示轨迹条的名字。
    (2) 第二个参数,const string&类型的winname,表示轨迹条的父窗口的名称。

  9. 鼠标操作
    Void setMouseCalback(const string& winname,MouseCallback onMouse,void* userdata=0)
    (1) 第一个参数,const string&类型的winname,窗口的名字
    (2) 第二个参数,MouseCallback类型的onMouse,指定窗口里每次鼠标时间发生的时候,被调用的指针。
    (3) 第三个参数,void*类型的userdata,用户定义的传递到回调函数的参数。

你可能感兴趣的:(技术类,java,python,opencv,c++,linux)