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
  • 相关阅读:
    java中set集合的常用方法
    Java的Collection集合的常用方法
    Java集合Collection&Map
    Linux设置中文语言的一种方式
    struts2自定义Interceptor拦截器
    Linux系统官网下载
    idea绿色版+谷歌浏览器绿色版——设置打开jsp文件
    torch.nn.Embedding
    负对数似然(negative log-likelihood)
    Pytorch系列教程-使用Seq2Seq网络和注意力机制进行机器翻译
  • 原文地址:https://www.cnblogs.com/westwind/p/1530999.html
Copyright © 2011-2022 走看看