由于众所周知的原因,OpenCv官网我们常常404,笔者这里直接整理了中文版的opencv功能函数,也是我们图像处理过程中最常用的函数,若你可链接外网可直接查看:
opencv
其中存在少许的乱码可能笔者未能检查出,凑合着学把。
功能
详细说明
本节中描述的函数和类用于对2D图像(表示为Mat)执行各种线性或非线性滤波操作。这意味着对于源图像(通常为矩形)中的每个像素位置,都将考虑其邻域并将其用于计算响应。对于线性滤波器,它是像素值的加权和。在形态操作的情况下,它是最小值或最大值,依此类推。计算出的响应存储在目标图像的相同位置(x ,y)(x ,y)。这意味着输出图像将具有与输入图像相同的尺寸。通常,这些功能支持多通道数组,在这种情况下,每个通道都是独立处理的。因此,输出图像还将具有与输入图像相同数量的通道。
本节中描述的函数和类的另一个共同特征是,与简单的算术函数不同,它们需要推断一些不存在的像素的值。例如,如果要使用高斯滤镜对图像进行平滑处理,则在处理每行中最左边的像素时,需要在它们左侧(即图像外部)放置像素。您可以使这些像素与最左边的图像像素相同(“复制边框”外推方法),或者假定所有不存在的像素均为零(“恒定边界”外推方法),依此类推。OpenCV使您可以指定外推方法。有关详细信息,请参见BorderTypes3 × 3
深度组合
输入深度(src.depth()) 输出深度(深度)
CV_8U -1 / CV_16S / CV_32F / CV_64F
CV_16U / CV_16S -1 / CV_32F / CV_64F
CV_32F -1 / CV_32F / CV_64F
CV_64F -1 / CV_64F
注意
当ddepth = -1时,输出图像的深度与源图像的深度相同。
枚举类型文档
◆ 变形形态
枚举cv :: MorphShapes
#include <opencv2/imgproc.hpp>
结构元素的形状
枚举器
MORPH_RECT
Python:cv.MORPH_RECT
矩形结构元素:
Ë我Ĵ= 1
MORPH_CROSS
Python:cv.MORPH_CROSS
十字形结构元素:
Ë我Ĵ= { 10如果i = \ texttt {anchor.y}或j = \ texttt {anchor.x}除此以外
MORPH_ELLIPSE
Python:cv.MORPH_ELLIPSE
一个椭圆结构元素,即,内接到矩形Rect(0,0,esize.width,0.esize.height)的填充的椭圆
◆ 变形类型
枚举cv :: MorphTypes
#include <opencv2/imgproc.hpp>
形态学操作类型
枚举器
MORPH_ERODE
Python:cv.MORPH_ERODE
见侵蚀
MORPH_DILATE
Python:cv.MORPH_DILATE
见扩张
MORPH_OPEN
Python:cv.MORPH_OPEN
关闭操作
dst = c l o s e( src,元素)= e r o d e( d i l a t e( src,元素))
MORPH_GRADIENT
Python:cv.MORPH_GRADIENT
形态梯度
MORPH_TOPHAT
Python:cv.MORPH_TOPHAT
高顶礼帽
dst = t o p h a t( src,元素)= src − o p e n( src,元素)
MORPH_BLACKHAT
Python:cv.MORPH_BLACKHAT
◆ 特殊过滤器
枚举cv :: SpecialFilter
#include <opencv2/imgproc.hpp>
枚举器
FILTER_SCHARR
的Python:cv.FILTER_SCHARR
功能文件
◆ lateralFilter()
无效的cv :: bilateralFilter ( 输入数组 SRC,
输出数组 DST,
整型 d,
双 sigmaColor,
双 sigmaSpace,
整型 borderType =BORDER_DEFAULT
)
蟒蛇:
dst = cv.bilateralFilter( src,d,sigmaColor,sigmaSpace [,dst [,borderType]] )
#include <opencv2/imgproc.hpp>
将双边过滤器应用于图像。
该函数将双边滤波应用于输入图像,如http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.htmlbilateralFilter中所述,bilateralFilter可以很好地减少不必要的噪声,同时保持边缘相当清晰。但是,与大多数过滤器相比,它非常慢。
西格玛值:为简单起见,您可以将2个西格玛值设置为相同。如果它们很小(<10),则滤镜效果不大;而如果它们很大(> 150),则滤镜效果会很强,使图像看起来“卡通化”。
过滤器大小:大型过滤器(d> 5)非常慢,因此对于实时应用程序建议使用d = 5,对于需要重噪声过滤的离线应用程序建议使用d = 9。
此过滤器无法在原位工作。
参量
src 源8位或浮点,1通道或3通道图像。
dst 与src大小和类型相同的目标映像。
d 滤波期间使用的每个像素邻域的直径。如果它不是正值,则从sigmaSpace计算得出。
sigmaColor 在色彩空间中过滤sigma。该参数的值越大,表示像素邻域内的其他颜色(请参见sigmaSpace)将混合在一起,从而产生更大的半均等颜色区域。
sigmaSpace 在坐标空间中过滤sigma。该参数的值越大,意味着越远的像素就会相互影响,只要它们的颜色足够接近即可(请参见sigmaColor)。当d> 0时,它指定邻域大小,而不考虑sigmaSpace。否则,d与sigmaSpace成比例。
borderType 用于推断图像外部像素的边框模式,请参见BorderTypes
例子:
samples / cpp / tutorial_code / ImgProc / Smoothing / Smoothing.cpp。
◆ blur()
无效的简历::模糊 ( 输入数组 SRC,
输出数组 DST,
尺寸 ksize,
点 锚 = Point(-1,-1),
整型 borderType =BORDER_DEFAULT
)
蟒蛇:
dst = cv.blur( src,ksize [,dst [,anchor [,borderType]]] )
#include <opencv2/imgproc.hpp>
使用归一化框滤镜模糊图像。
该函数使用内核对图像进行平滑处理:
K =1ksize.width * ksize.height⎡⎣⎢⎢⎢1个1个…1个1个1个1个1个1个1个⋯⋯⋯1个1个1个1个1个1个⎤⎦⎥⎥⎥
该呼叫blur(src, dst, ksize, anchor, borderType)等效于boxFilter(src, dst, src.type(), anchor, true, borderType)。
参量
src 输入图像;它可以具有任意数量的通道,这些通道可以独立处理,但深度应为CV_8U,CV_16U,CV_16S,CV_32F或CV_64F。
dst 输出与src大小和类型相同的图像。
大小 内核大小模糊。
锚 锚点 默认值Point(-1,-1)表示锚点位于内核中心。
borderType 用于推断图像外部像素的边框模式,请参见BorderTypes。不支持BORDER_WRAP。
也可以看看
boxFilter,bilateralFilter,GaussianBlur,midBlur
例子:
samples / cpp / edge.cpp,samples / cpp / laplace.cpp和samples / cpp / tutorial_code / ImgProc / Smoothing / Smoothing.cpp。
◆ boxFilter()
无效的cv :: boxFilter ( 输入数组 SRC,
输出数组 DST,
整型 ddepth,
尺寸 ksize,
点 锚 = Point(-1,-1),
布尔 归一化 = true,
整型 borderType =BORDER_DEFAULT
)
蟒蛇:
dst = cv.boxFilter( src,ddepth,ksize [,dst [,anchor [,normalize [,borderType]]]]] )
#include <opencv2/imgproc.hpp>
使用方框滤镜模糊图像。
α = { 1ksize.width * ksize.height1个当\ texttt {nor