zoukankan      html  css  js  c++  java
  • [转载] OpenCV2.4.3 CheatSheet学习(三)

    四、图像处理(呵呵,重头戏来了)
    1.
    滤波
    filter2D()
    用核函数对图像做卷积。

    sepFilter2D()
    用分解的核函数对图像做卷积。
    首先,图像的每一行与一维的核kernelX做卷积;然后,运算结果的每一列与一维的核kernelY做卷积。

    boxFilter()
    就是滑动窗口平均滤波的二维版。

    GaussianBlur()
    高斯平均,也就是高斯模糊。

    medianBlur()
    中值滤波,个人最爱的滤波函数。

    bilateralFilter()
    双线性滤波。

    前面这四个函数是原来OpenCV里的cvSmooth()取不同参数的应用。

    Sobel()
    使用扩展Sobel 算子计算一阶、二阶、三阶或混合图像差分,看冈萨雷斯的那本《数字图像处理》。

    Scharr()
    计算一阶导,x方向或y方向,以前这个方法是放在cvSobel里的。

    Laplacian()
    拉普拉斯变换。

    erode(), dilate()
    腐蚀、膨胀。

    示例:
    filter2D(image, image, image.depth(),(Mat<float>(3,3)<<-1,-1, -1, -1, 9, -1, -1, -1, -1), Point(1,1),128);
    构造了一个如下所示的核对图像做卷积:
    -1 -1 -1
    -1 9 -1
    -1 -1 -1
    核的锚点在(1,1)位置,卷积之后每个像素加上128.

    2.
    几何变换
    resize()
    改变图像尺寸,可以指定x方向和y方向上的缩放比例,可以指定插值方法。

    getRectSubPix()
    以亚像素精度从图像中提取矩形。
    dst(x,y)=src(x+center.x-(dst.cols-1)*0.5,y+center.y-(dst.rows-1)*0.5)
    其中非整数象素点坐标采用双线性插值提取。

    warpAffine()
    放射变换,看冈萨雷斯《数字图像处理》。

    warpPerspective()
    透射变换。

    remap()
    几何变换。

    convertMaps()
    这是啥?没用过,呵呵。

    示例:
    Mat dst;
    resize(src, dst, Size(), 1./sqrt(2),1./sqrt(2));
    把图像缩小到原来的根号二分之一。

    3.
    图像变换
    cvtColor()
    色彩空间转换。
    顺便提一句,这个函数可以用于把CCDraw格式转换为RGB,请参考:
    http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=18681
    但是不能用于把灰度图转成伪彩图,请参考:
    http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=23729

    threshold()
    二值化,常用操作,一般应用时建议用大津算法,即使用THRESH_OTSU参数。

    adaptivethreshold()
    自适应阈值的二值化。

    floodFill()
    填充连通域。

    integral()
    计算积分图像,一次或者二次。

    distanceTransform()
    距离变换,对原图像的每一个像素计算到最近非零像素的距离。

    watershed()
    分水岭图像分割。

    grabCut()
    一种彩色图像分割算法,效果可以参考这里:
    http://www.cnblogs.com/xrwang/archive/2010/04/27/GrabCut.html

    4.
    直方图
    calcHist()
    计算直方图。

    calcBackProject()
    计算反向投影。

    equalizeHist()
    灰度图像的直方图均衡化,常用操作。

    compareHist()
    比较两个直方图。

    栗子:
    Mat hsv, H;
    cvtColor(image, hsv, CVBGR2HSV);
    int planes[]=f0, 1g, hsize[] = f32, 32g;
    calcHist(&hsv, 1, planes, Mat(), H, 2, hsize,0);
    计算图像的色调-饱和度直方图。



    sume
    2013/1/5

     

  • 相关阅读:
    foreach next 操作数组指针移动问题,多个数连加,连除,连减,连乘php版本
    mysql 5.7 laravel json类型数据相关操作
    rbac权限控制,基于无线分类
    基于bootstrap-treeview做的一个漂亮的无限分类树层级联动菜单
    css页面字体替换源代码和页面显示不一样问题解决
    centos6.8 编译安装lnmp php7.2 mysql5.6 nginx1.1.4
    mysql5.7采坑
    laravel整合vue 多入口解决
    使用mysql设计一个全局订单生产计数器
    laravel整合workerman做聊天室
  • 原文地址:https://www.cnblogs.com/eaglediao/p/7136525.html
Copyright © 2011-2022 走看看