[转载] 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()
色彩空间转换。
顺便提一句,这个函数可以用于把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学习(三)的更多相关文章
- [转载] OpenCV2.4.3 CheatSheet学习(一)
OpenCV向MATLAB靠拢,图像的操作方法变得不那么C了,更m了一些.比如,MATLAB中的常用函数imshow.imread.imwrite函数在OpenCV中已经有了同名的兄弟. 此外,Ope ...
- [转载] OpenCV2.4.3 CheatSheet学习(四)
五.数据的输入和输出 1. 将数据写入YAML(或XML) 注意,在OpenCV中,无论读写,文件的格式均由指定的后缀名确定.示例: FileStorage fs("test.yml&quo ...
- [转载] OpenCV2.4.3 CheatSheet学习(二)
二.矩阵操作(拷贝.洗牌.局部访问): src.copyTo(dst) 把src矩阵中的数据拷贝到dst. src.convertTo(dst, type,scale, shift) 缩放并转换到另外 ...
- Android JNI学习(三)——Java与Native相互调用
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- GCD学习 —— 三
学习学习dispatch_block,在向队列中添加任务时,可以直接在对应的函数中添加 block.但是如果想对任务进行操作,比如监听任务.取消任务,就需要获取对应的 block. 1 创建Blo ...
- 转载:WinForm中播放声音的三种方法
转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753 ...
- HTTP学习三:HTTPS
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...
- TweenMax动画库学习(三)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) ...
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
随机推荐
- System.Clollections.IEnumerable.cs
ylbtech-System.Clollections.IEnumerable.cs 1.程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicK ...
- Oracle一条数据多表连插
insert all into T_TRAIN_MARSHALLING <trim prefix="(GKEY," suffix=")" suffixOv ...
- 16.ajax_case06
# 抓取华尔街见闻实时快讯 # https://wallstreetcn.com/live/global?from=navbar import requests import json header ...
- <随便写>进程基本知识
from multiprocessing import Process, Queue,Pool import time import os def producer(q): for i in rang ...
- MVC中利用ViewBag传递Json数据时的前端处理方法
用viewBag传递Json字符串到前端时,json字符串中的“会被转义为& quot,前端处理方法为@Html.Raw(Json.Encode(ViewBag.Data)),再用eval() ...
- CDH断电后 hbase出现spilt块不完整问题
从错误看起来是regionspilt时候断电了,导致hbase master启动不起来,因为是测试环境只能删除这些region了,掉一部分数据 删除hbase下spilt块,删除zK里面的habse ...
- 解决 no compatible version found: ionic-native@^3.5.0
npm ERR! Linux --generic npm ERR! argv "/usr/src/node-v6.10.3-linux-x64/bin/node" "/u ...
- 关于underline
1, 有些系统可能看不到下划线的效果,这是不妨按着Alt键看看: 2, underline=#, 数字表示在哪个字母下显示下划线,从0开始
- 「BZOJ2300」[HAOI2011] 防线修建
传送门 操作离线之后倒着做,只有加点操作. 用set动态维护凸包即可. //Achen #include<algorithm> #include<iostream> #incl ...
- VMware的下载安装
在学习使用LINNX系统之前,先在自己的电脑上安装一个虚拟机,流行的虚拟机软件有VMware(VMWare ACE).Virtual Box和Virtual PC,它们都能在Windows系统上虚拟出 ...