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
  • 相关阅读:
    十. 代码格式化插件 Tag
    小知识点
    IE11 打开方式 出现两个图标
    一 OS X 焦点 切换
    九. 边栏工具 浏览器工具 SideBarEnhancements
    Django进阶之缓存和信号
    Django进阶之中间件
    Python 堡垒机编程之Paramiko
    Django ORM补充
    Web 开发基础之Html
  • 原文地址:https://www.cnblogs.com/speedmancs/p/2039517.html
Copyright © 2011-2022 走看看