四、图像处理(呵呵,重头戏来了)
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()
色彩空间转换。
顺便提一句,这个函数可以用于把CCD的raw格式转换为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

[转载] OpenCV2.4.3 CheatSheet学习(三)的更多相关文章

  1. [转载] OpenCV2.4.3 CheatSheet学习(一)

    OpenCV向MATLAB靠拢,图像的操作方法变得不那么C了,更m了一些.比如,MATLAB中的常用函数imshow.imread.imwrite函数在OpenCV中已经有了同名的兄弟. 此外,Ope ...

  2. [转载] OpenCV2.4.3 CheatSheet学习(四)

    五.数据的输入和输出 1. 将数据写入YAML(或XML) 注意,在OpenCV中,无论读写,文件的格式均由指定的后缀名确定.示例: FileStorage fs("test.yml&quo ...

  3. [转载] OpenCV2.4.3 CheatSheet学习(二)

    二.矩阵操作(拷贝.洗牌.局部访问): src.copyTo(dst) 把src矩阵中的数据拷贝到dst. src.convertTo(dst, type,scale, shift) 缩放并转换到另外 ...

  4. Android JNI学习(三)——Java与Native相互调用

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  5. GCD学习 —— 三

    ​ 学习学习dispatch_block,在向队列中添加任务时,可以直接在对应的函数中添加 block.但是如果想对任务进行操作,比如监听任务.取消任务,就需要获取对应的 block. 1 创建Blo ...

  6. 转载:WinForm中播放声音的三种方法

    转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753 ...

  7. HTTP学习三:HTTPS

    HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...

  8. TweenMax动画库学习(三)

    目录               TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)           ...

  9. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

随机推荐

  1. Delphi编写后台监控软件

    Delphi编写后台监控软件         文章来源:Delphi程序员之家     后台监控软件,为了达到隐蔽监控的目的,应该满足正常运行时,不显示在任务栏上,在按Ctrl+Alt+Del出现的任 ...

  2. 夏令营501-511NOIP训练17——蛇形矩阵

    传送门:QAQQAQ 题意:话说小X在孩提时,都会做标准的蛇形矩阵了,发现很好玩.现在的小X很想对其进行改版,变为如下类型的一个无限大蛇形数阵:令S(x)表示以1为左上角,x为右下角的矩形内所有数之和 ...

  3. Spring+SpringMVC+Mybatis搭建的网站的处理流程总结

    最近学习了如何使用SSM框架搭建网站,以前没用过框架,第一次使用,总结一下自己对框架处理流程的理解

  4. 通过key_len分析联合索引的使用

    The key_len column indicates the length of the key that MySQL decided to use. The length is NULL if ...

  5. ABP Linq 扩展的 WhereIf 查询内部实现

    public static class QueryableExtensions { public static IQueryable<T> WhereIf<T>(this IQ ...

  6. Java开发系列-Cookie与Session会话技术

    概述 会话技术:当用户打开浏览器的时候,访问不同的资源,直到用户将浏览器关闭,可以认为这是一次会话.会话技术产生是由于Http请求是一个无状态的协议,它不会记录上次访问的内容,用户在访过程中难免产生一 ...

  7. 浏览器禁用Cookie后的Session处理

    1. 实现购物车, 可以基于Cookie, 也可以基于Session, 若服务器性能较差, 可以考虑基于Cookie实现购物车 2. 解决方案: URL重写 把用户可能点的每一个超链接后面,都跟上用户 ...

  8. python中使用xlrd、xlwt操作excel

    python 对 excel基本的操作如下: # -*- coding: utf-8 -*- import xlrd import xlwt from datetime import date,dat ...

  9. JZOJ[3771] 【NOI2015模拟8.15】小 Z 的烦恼

    题目 描述 题目大意 有从111到nnn的数字,每个数字都可以放在一个盒子里(可以不放).一旦放,满足: 如果它不在第mmm个盒子,那么它的两倍一定在后面一个盒子里. 如果它不在第111个盒子,那么它 ...

  10. 07.27NOIP模拟赛

    戳这里下载过去三次NOIP模拟赛总成绩 (别嘲笑垫底的我...解压密码为信奥生所在的两个班的班号,文档密码为机房开机用户名+密码) 又一次垫底…… 我难受. 上来感觉T1不可做,T2和蔼可亲,T3一脸 ...