OpenCV中图像处理函数
2016-12-19 22:01
330 查看
OpenCV 2.4 Cheat Sheet (C++)系列——Image Processsing
另:Cv图像处理
1。滤波 Filtering
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。几何变换 Geometrical Transformations
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。 图像变换 Various Image Transformations
cvtColor()色彩空间转换。这个函数可以用于把CCD的raw格式转换为RGB,请参考,但是不能用于把灰度图转成伪彩图,请参考。
threshold() 二值化,常用操作,一般应用时建议用大津算法,即使用THRESH_OTSU参数。
adaptivethreshold() 自适应阈值的二值化。
floodFill() 填充连通域。
integral() 计算积分图像,一次或者二次。
distanceTransform() 距离变换,对原图像的每一个像素计算到最近非零像素的距离。
watershed() 分水岭图像分割。
grabCut()
一种彩色图像分割算法,效果可以参考这里。See the samples watershed.cpp and grabcut.cpp.
4。 直方图 Histograms
calcHist() 计算直方图。
calcBackProject() 计算反向投影。
equalizeHist() 灰度图像的直方图均衡化,常用操作。
compareHist() 比较两个直方图。
例子:计算图像的色调-饱和度直方图。
Mat hsv, H;
cvtColor(image, hsv, C
4000
VBGR2HSV);
int planes[]=f0, 1g, hsize[] = f32, 32g;
calcHist(&hsv, 1, planes, Mat(), H, 2, hsize, 0);
另:Cv图像处理
1。滤波 Filtering
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。几何变换 Geometrical Transformations
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。 图像变换 Various Image Transformations
cvtColor()色彩空间转换。这个函数可以用于把CCD的raw格式转换为RGB,请参考,但是不能用于把灰度图转成伪彩图,请参考。
threshold() 二值化,常用操作,一般应用时建议用大津算法,即使用THRESH_OTSU参数。
adaptivethreshold() 自适应阈值的二值化。
floodFill() 填充连通域。
integral() 计算积分图像,一次或者二次。
distanceTransform() 距离变换,对原图像的每一个像素计算到最近非零像素的距离。
watershed() 分水岭图像分割。
grabCut()
一种彩色图像分割算法,效果可以参考这里。See the samples watershed.cpp and grabcut.cpp.
4。 直方图 Histograms
calcHist() 计算直方图。
calcBackProject() 计算反向投影。
equalizeHist() 灰度图像的直方图均衡化,常用操作。
compareHist() 比较两个直方图。
例子:计算图像的色调-饱和度直方图。
Mat hsv, H;
cvtColor(image, hsv, C
4000
VBGR2HSV);
int planes[]=f0, 1g, hsize[] = f32, 32g;
calcHist(&hsv, 1, planes, Mat(), H, 2, hsize, 0);
相关文章推荐
- 图像处理和图像识别中常用的OpenCV函数
- OpenCV 图像处理常用函数
- opencv 数字图像处理-图像缩放 自己写cvResize()函数
- (未实用 需多个函数配套使用)opencv3.0 函数学习 10——morphologyEx 形态学图像处理:开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- OpenCV用GDI或者GDI+函数对IplImage图像处理
- opencv常用图像处理函数
- OpenCV系统学习:二、基本图像处理函数
- 图像处理中几个常用函数(Opencv实现)
- OpenCV中图像处理函数
- 图像处理_常用函数_OpenCV
- 基本的opencv图像处理函数
- opencv常用图像处理函数(C版本)
- 图像处理之opencv---常用函数
- OpenCV 图像处理常用函数(转)
- OpenCv入门(二)-图像处理基本函数
- OpenCV图像视频处理函数
- OpenCV 图像处理常用函数
- OpenCV图像处理中常用函数汇总(1)
- 计算机视觉与图像处理学习笔记(三)opencv的基本数据类型与简单图像处理函数
- OpenCV_常用图像处理函数与功能注释