zoukankan      html  css  js  c++  java
  • OPENCV初探(二)

    数据结构:
    基本数据类型:
    CvPoint(,2D32f,3D32f)     CvSize(,2D32f)                                                 CvScale(four double-precision numbers.)  RGBA
                           CvRect            

    矩阵和图像类型:
    CvArr
       |
       |
       |
    CvMat (只是头)   (向量也用矩阵来表示,这和Matlab很象)   CV_<bit_depth>(S|U|F)C<number_of_channels>说明像素可能不是一个数值
       |                   cvCreateMatHeader() + cvCreateData()                                                    cvInitMatHeader(已有头)cvMat(分配头)
       |    (头+数据)             cvCreateMat()                   cvCloneMat         cvReleaseMat 
       |                   step的含义:一行所占的字节数    例如 cols=3   type=CV_32FC1  3x32/8x1=12    CV_32FC3  3x32/8x3=36
       |                   cvGetElemType                    cvGetDims                       cvGetDimSize(制定维数)
       |                   CV_MAT_ELEM() (已转型)     CV_MAT_ELEM_PTR()
       |
    IplImage          depth channels 分离    origin(左上或左下) dataOrder(像素或平面)            ROI
                         
    构造函数命名规则:
    与结构体命名一样,但首字符小写                                                                     例外cvRealScalar()  [1],cvScalarAll() [1-4]

    需要注意的地方:
    1.使用step避免四字节存取问题
    2.注意1xn,nx1,nx3和3xn的区别        
    3.IplImage 和CvMat的区别:IplImage数据是BYTE指针   step  ,而CvMat是UNION  step/n
    4.在设置了ROI区域后一定要cvResetImageROI(),否则只显示ROI区域
    5.重要公式:imageData +y * widthStep+x*nChannels;
    6.cvConvertScale()先Scale再Convert
    7.cvMul()进行的是对应点的乘法

    Code
  • 相关阅读:
    Django tutorial part2
    Django tutorial part1
    webpy使用mysql数据库操作(web.database)
    Sicily 1031. Campus 解题报告
    Sicily 1321. Robot 解题报告
    Sicily 1940. Ordering Tasks 解题报告
    Sicily 1936. Knight Moves 解题报告
    Java多线程21:多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask
    Java多线程20:多线程下的其他组件之CountDownLatch、Semaphore、Exchanger
    Java多线程19:定时器Timer
  • 原文地址:https://www.cnblogs.com/westwind/p/1530999.html
Copyright © 2011-2022 走看看