zoukankan      html  css  js  c++  java
  • 项目代码学习笔记

    1.cvCreateVideoWriter 是创建视频文件写入器的意思。

    创建视频文件写入器
    typedef struct CvVideoWriter CvVideoWriter;
    CvVideoWriter* cvCreateVideoWriter ( const char* filename, int fourcc, double fps, CvSize frame_size, int is_color=1 );
    filename 输出视频文件名。
    fourcc为 四个字符用来表示压缩帧的cod

    2.CvScalar是一个可以用来存放4个double数值的数组。
    这个 CvScalar就是一个可以用来存放4个double数值的数组(O'Reilly的书上写的是4个整型成员);一般用来存放像素值(不一定是灰度值哦)的,最多可以存放4个通道的。
    typedef struct CvScalar
    {
      double val[4];
      }CvScalar;

    如何赋值
    (1) inline CvScalar cvScalar( double val0, double val1=0,double val2=0, double val3=0 );
    //最通用的,可初始化0-4个通道
    举例:
    a) 存放单通道图像中像素:cvScalar(255);
    b) 存放三通道图像中像素:cvScalar(255,255,255);
    (2) inline CvScalar cvRealScalar( double val0 );
    //只使用第一个通道,val[0]=val0;等同于cvScalar(val0,0,0,0);
    (3) inline CvScalar cvScalarAll( double val0123 );
    //所用通道值用同一个val0123赋值
    (4) CV_RGB
    CV_RGB是OPENCV中的一个宏,用于创建一个色彩值:
    #define CV_RGB(r,g,b) cvScalar((b),(g),(r),0)。
    看到转换为cvScalar时,rgb的顺序变为bgr,这是因为opencv中存储RGB模式彩图时,采用的通道顺序是BGR.

    如CvScalar color = CV_RGB( rand()&255, rand()&255, rand()&255 )

    3.GetDlgItem,是根据继承关系的函数功能,返回窗口中指定参数ID的子元素的句柄,可以通过返回的句柄对窗口内的子元素进行操作。
    根据继承关系,有如下几类:
    1).CWindow::GetDlgItem
    HWND GetDlgItem( intnID)const;
    说明——
    参数 nID:接收消息的控件的标识;
    返回值:标识所标记的控制窗口句柄;
    2).CWnd::GetDlgItem
    CWnd* GetDlgItem ( intnID) const;
    void CWnd::GetDlgItem( int nID, HWND *phWnd) const;
    说明——
    参数 nID:接收消息的控件的标识;
    参数phWnd:子类窗口的指针;
    返回值:标识所标记的控件(或子类窗口)的指针;
    Example
    // Uses GetDlgItem to return a pointer to a user interface control.
    CEdit* pBoxOne;
    pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);
    GotoDlgCtrl(pBoxOne);
    3).Windows SDK
    HWND GetDlgItem(
    HWNDhDlg, // handle to dialog box
    intnIDDlgItem// control identifier
    );
    参数说明:
    hDlg:标识含有控件的对话框。
    nlDDlgltem:指定将被检索的控件标识符。
    返回值:如果函数调用成功则返回值为给定控件的窗口句柄。如果函数调用失败,则返回值为NULL,表示为一个无效的对话框句柄或一个不存在的控件。若想获得更多错误信息,请调用GetLastError函数。
    备注:可以通过使用任何父子窗口对来使用GetDlgltem函数,而不仅只是对话框。只要hDlg参数指定一个父窗口,且子窗口有一个独立的标识符(象CreateWindow中hMenu参数指定的或创建子窗口的CreateWindowEx指定的那样),GetDlgltem就会返回一个有效的句柄到子窗口。
    Windows CE:GetDlgltem函数只为对话框中的直接于控制工作,它不通过嵌套的对话框来搜寻。
    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
    多数以GetDlgitem(控件标识符)来使用


    4.GetWindowRect是一个Windows API函数。该函数返回指定窗口的边框矩形的尺寸,函数原型为void GetWindowRect(LPRECT lpRect) const。
    该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。


    5.CClientDC
    类CClientDC派生于CDC,在构造时调用了Windows函数GetDC,在析构时调用了ReleaseDC。这意味着和CClientDC对象相关的设备上下文是窗口的客户区。
    CClientDC:(客户区设备上下文)用于客户区的输出,与特定窗口关联,可以让开发者访问目标窗口中客户区,其构造函数中包含了GetDC,析构函数中包含了ReleaseDC。


    6.BOOL LineTo( HDC hdc, int xEnd, int yEnd );MoveToEx函数和LineTo函数要一起使用才能达到画线的效果,咋看起来这两个函数不相干,我是这样想的,画线要用“笔”,那么MoveToEx()把笔要画的起始位置固定了(x,y)然后要固定终止位置要用到LineTo函数确定终止位置(xend,yend),这样一条线就画出来了。

  • 相关阅读:
    全体自然数的和是负十二分之一?
    隐马尔可夫模型(二)维特比算法
    隐马尔可夫模型
    freemarker实现单元格动态合并-行合并
    工具类_JavaPOI_Office文件内容读取
    SpringBoot-自动装配对象及源码ImportSelector分析
    SpringBoot-文件在线预览解决方案-基于OpenOffice及jacob
    Elasticsearch6.4.0-windows环境部署安装
    单列模式与多线程
    基于SpringMVC的文件(增删改查)上传、下载、更新、删除
  • 原文地址:https://www.cnblogs.com/yangxuebing/p/7481864.html
Copyright © 2011-2022 走看看