OpenCV 算法框架

OpenCV 算法框架

 

一、基础操作
     1. 数据类型 数据结构了解
      图像相关:cvArr  cvMat IplImage
      数据数组的维数, 与数据的通道数 见P46 (76)

2. 常见的矩阵操作熟悉
     3. 数据的保存和读取

4. 图像的加载和显示

5. 视频的操作

6. 内存与序列


    a. 内存存储器
      CvMemStorage

  双向链表  动态对象(cvSeq  cvSet)的内存
      cvCreateMemStorage
      cvReleaseMemStorage
      cvClearMemStorage  不返还系统
      cvMemStorageAlloc

 

b. 序列
      是内存存储器可以存储的一种对象。 双端队列
      CvSeq
      方法:
      cvCreateSeq
      cvClearSeq
      cvGetSeqElem
      cvCloneSeq cvSeqSlice cvSeqRemoveSlice cvSeqInsertSlice
      cvSeqSort
      cvSeqSearch
      cvSeqInvert
      cvSeqPartition
      堆栈操作   cvSeqPush cvSeqPushFront  cvSeqPop  cvSeqPopFront  cvSeqPushMulti  cvSeqPopMulti
      cvSeqInsert cvSeqRemove
      cvSetSeqBlockSize
      读出和写入:  CvSeqWriter结构  cvStartWriteSeq  cvStartAppendToSeq  cvEndWriteSeq  cvFlushSeqWriter
                                    CV_WRITE_SEQ_ELEM  CV_WRITE_SEQ_ELEM_VAR
                   CvSeqReader结构  cvStartReadSeq   cvGetSeqReaderPos   cvSetSeqReaderPos
                                    CV_NEXT_SEQ_ELEM V_PREV_SEQ_ELEM CV_READ_SEQ_ELEM CV_REV_READ_SEQ_ELEM
      数组互相转换 cvCvtSeqToArray  cvMakeSeqHeaderForArray

 

二. 图像的处理


     1. 图像的平滑  cvSmooth
       主要应用: 去除噪声, 失真,降低图像的分辨率。
       主要方法: CV_BLUR   CV_BLUR_NO_SCALE  CV_MEDIAN  CV_GAUSSIAN  CV_BILATERAL

2. 图像形态学 cvErode  cvDilate  cvMorphologyEx
        主要作用: 消除噪声  分割等
        相关方法
   a. 腐蚀    消除噪声斑点
   b. 膨胀    连通被噪声、阴影分割的区域
   c. 开运算  先腐蚀后膨胀
   d. 闭运算  先膨胀后腐蚀
   e. 形态梯度 
   f. "礼貌" 
   g. "黑帽"

3. 漫水填充算法  cvFloodFill
   作用: 标记或者分离图像的一部分。 从输入图像获取掩码区域。
   原理:  把邻近区域所有相似点填充为种子点同样的颜色。

4. 尺寸调整  cvResize
   ROI的影响
   插值方法的选择

5. 图像金字塔  cvPyrDown  cvPyrUp  cvPyrSegmentation
   简介:源于同一原始图像的连续降采样获得的一个图像的集合。
   方法:高斯图像金字塔  拉普拉斯图像金字塔
   应用:图像分割

6. 阀值化 cvThreshold  cvAdaptiveThreshold
   一般阀值化
   自适应阀值化: 针对有很强照明或反射梯度的图像,需要根据梯度进行阀值化

三、图像的变换
1. 卷积 cvFilter2D
   数学公式: z(t)=f(t)*g(t)= ∫f(m)g(t-m)dm
             h(x)=(f*g)(x)
   描述:变换的基础
   卷积核: 参考点  核支撑
   计算方法:图像参考点 = Σ 核点*对应图像点
   卷积边界:  cvCopyMakeBorder

2. 梯度和Sobel导数  cvSobel
   导数的计算:最重要且是最基本的卷积
   注意: Sobel导数并不是真正的导数,它是离散空间的拟合。
          用大核可以对导数有更好的逼近。
   scharr滤波器: sobel算子小核时精度低,应使用scharr滤波器。

3. 拉普拉斯变换  cvLaplace
   描述: 二阶导数  二阶Sobel导数
   应用:  检测"团块"  边缘检测

4. Canny算子 cvCanny
   描述: 轮廓拼装
   应用:  边缘检测

5. 霍夫变换
   应用: 在图像中寻找直线、圆等其他简单图形的方法。
   霍夫线变换 cvHoughLines2

霍夫圆变换 (霍夫梯度法) cvHoughCircles

6. 重映射 cvRemap

7.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值