• 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
  • 相关阅读:
    通过field:global给子元素添加css样式
    TP5 调用邮箱接口
    php数组使用json_encode函数中文被编码成null的原因和解决办法
    UNIX系统上的抓包工具tcpdump常用命令说明
    快速搭建ELK7.5版本的日志分析系统--搭建篇
    Kubernetes实战之部署ELK Stack收集平台日志
    k8s实战之部署Prometheus+Grafana可视化监控告警平台
    Linux防火墙firewalld安全设置
    在zabbix中实现发送带有图片的邮件和微信告警
    用Dockerfile部署zabbix
  • 原文地址:https://www.cnblogs.com/westwind/p/1530999.html
Copyright © 2020-2023  润新知