OpenCV3入门

最近花了一周多时间,拜读了毛星云的OpenCV3编程入门,今天晚上从新东方英语回来有点时间就写个总结吧!

#include<opencv2/opencv.hpp>  这个头文件包含了很多头文件,一般只需加载这一个

一.  HighGUI图像用户界面

    图像的载入,显示,窗口,输出到文件,滑动条创建等操作

二. core组件

    Mat 、Point、Scalar、Size、Rect 等类

   cvtColor()、DrawEllipse()、DrawFilledCirclle()、DrawLine()等函数

   操作:(1)访问图像中的像素(2)addWeighted()函数,计算数组加权和,可以将两个图像进行混合

            (3)可以进行不同通道的图像分离和合并split()和merge()函数(4)图像对比度和亮度进行调整

            (5)输入输出其他文件

三. imgproc组件

3.1 图像处理

           线性滤波:方框滤波(boxFilter)、均值滤波(blur)、高斯滤波(GaussianBlur),它们只是模板的选择不同

           非线性滤波:中值滤波(medianBlur)、双边滤波(bilateralFilter),双边滤波是在图像平滑的区域使用高斯滤波,高频部分(即边缘地区)保持了原来的像素。

           形态学滤波:腐蚀(erode),膨胀(dilate),开运算(open),闭运算(close),形态学梯度(保留物体边缘轮廓),顶帽(原图-开运算结果图),黑帽(闭运算与原图之差)    morphologyEx()这个函数可选择所有的形态学处理

           漫水填充:floodFill()  用特定的颜色填充连通的区域  

           图像金字塔与尺寸缩放(resize):上采样(pyrUp)和下采样(pyrDown)(向上与向下相对于图像的大小而言,即和金字塔方向相反),相对于不同的分辨率提出的多尺度表达。

           阈值化:threshold() 和 adaptivethreshold()自适应阈值   求取二值化图像

3.2 图像变换

          边缘检测:canny、sobel、Laplacian,一般sobel算子比较快,canny算子效果好。

          霍夫变换:霍夫线变换和霍夫圆变换,当然也可以检测别的形状。线检测的原理主要是转换到极坐标空间,算累加概率。

          重映射:主要是对图像进行绕x轴,y轴旋转以及xy轴旋转

          仿射变换:对图像的旋转,平移,缩放

          直方图均衡化:拉伸像素强度的范围

3.3   图像轮廓提取与图像分割

        查找绘制轮廓:findContours()   drawContours() 

        寻找凸包:   最外层的点连接构成的凸多边形   convexHull()

        多边形包围轮廓:将轮廓用多边形表示

        图像的矩: 

        分水岭:watershed()  第二个参数被标记过的边界点作为入水点

        图像修补:impaint()函数

3.4 直方图与匹配

     直方图计算与绘制:

             calcHist()     minMaxLoc()

     直方图对比:

            compareHist()

     反向投影:首先计算某一特征的直方图模型,然后使用模型寻找图像中存在该特征的位置。

     模板匹配:用模板和一张图像存在该模板的位置进行匹配。

四. feature2d组件

4.1 角点检测

    Harris角点:

    图像强角点:

    亚像素级角点:

猜你喜欢

转载自blog.csdn.net/j497205974/article/details/80502532