zoukankan      html  css  js  c++  java
  • opencv源码阅读(1)

    参考资料

    1. http://www.opencv.org.cn/
    2. opencv document

    使用的opencv版本:OpenCV 1.0

    第一个阅读的文件

    cxcore/include/cxtypes.h

    CvArr

    typedef void CvArr;
    //函数传参经常是CvArr*,具体的类型在运行期识别

    Cv32suf

    typedef union Cv32suf 
    {
    int i;
    unsigned u;
    float f;
    }
    Cv32suf;
    这个union既可以看作是int,也可以看作是unsigned(unsigned int),float 这三种数据类型在x86平台都是4个字节。

    类似的还有Cv64suf,该union也有三个并列的变量,都是64位

    常用宏和内联函数


    • CV_PI:pi值
    • CV_LOG2:ln2
    • CV_SWAP(a,b,t)

      交换a和b的值,t是临时变量

    • MIN,MAX:求两个数的最小最大值
    • CV_IMIN(a, b): 这个求最小值的宏号称没有分支跳转(即如MIN宏那样使用了if语句或?符号比较了两个数),具体代码如下:
      ((a) ^ (((a)^(b)) & (((a) < (b)) - 1)))
      其中^是与或运算:两者相等为0,不等为1。上面的宏为什么会奏效呢,请看博文不使用跳转的宏CV_IMIN分析
    • CV_IMAX与CV_IMIN类似
    • CV_IABS(a):整数的绝对值
    • CV_CMP(a,b): 比较a和b,如果a>b返回1,a<b返回-1,a=b返回0
    • CV_SIGN(a):若a为正,返回1,为负数返回-1,是0返回0,调用了CV_CMP(a,0)

    内联函数

    •  int  cvRound( double value )
      返回离value最近的整数,所谓的四舍五入
    • s
  • 相关阅读:
    js 对象数组 排序
    sql 时间条件查询
    idea和Pycharm 等系列产品激活激活方法和激活码 100 年
    开源协议简介
    面试题
    VIM|基础命令
    git|基础命令
    VIM|复制
    lua|基础教程
    Printf格式输出详解
  • 原文地址:https://www.cnblogs.com/speedmancs/p/2039517.html
Copyright © 2011-2022 走看看