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
  • 相关阅读:
    Linux学习笔记六----------文件传输
    Linux学习笔记五----------文本编辑
    Linux学习笔记四----------远程连接和SSH
    Linux学习笔记三----------Linux进阶知识和命令
    Linux学习笔记二----------Linux基础知识和命令
    ArcGIS API for JavaScript3.16 使用中遇到的问题,及解决方法
    ArcGIS API for JavaScript学习
    echarts容器动态变化高度
    好用的流程图js插件
    jeecg-boot + ant-design-vue开发,希望点击菜单打开新窗口页签
  • 原文地址:https://www.cnblogs.com/westwind/p/1530999.html
Copyright © 2011-2022 走看看