opencv normalize blur medianBlur

来源:互联网 发布:云南省贫困人口数据 编辑:程序博客网 时间:2024/05/22 07:41

opencv normalize blur medianBlur

具体函数原型,可查看opencv库以下路径的头文件:
/sdk/native/jni/include/opencv2/core/Core.hpp
/sdk/native/jni/include/opencv2/core/Core_c.h

//! computes norm of a sparse matrix
CV_EXPORTS void normalize( const SparseMat& src, SparseMat& dst, double alpha, int normType );

CV_EXPORTS_W void normalize( InputArray src, OutputArray dst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1, InputArray mask=noArray());
功能:归一化输入数组(使它的范数或者数值在一定的范围内)
参数:
src 输入数组
dst 输出数组(支持原地运算–即输入根输出使用同一参数)
alpha 数值归一化(range normalization)模式的最小值
beta 数值归一化(range normalization)模式模式的最大值,不用于norm normalization(范数归一化)模式。
normType
归一化类型:
NORM_MINMAX: 数组的数值被平移或缩放到一个指定的范围,线性归一化,一般较常用。
NORM_INF: 归一化数组的C-范数(绝对值的最大值)
NORM_L1 : 归一化数组的L1-范数(绝对值的和)
NORM_L2: 归一化数组的L2-范数(欧几里德)
dtype
dtype为负数时,输出数组的type与输入数组的type相同;
dtype为正数时,输出数组与输入数组只是通道数相同,而tpye=CV_MAT_DEPTH(dtype).
mask
操作掩膜,用于指示函数是否仅仅对指定的元素进行操作。

归一化公式:1、线性函数转换,norm_type=NORM_MINMAX:if mask(i,j)!=0    dst(i,j)=(src(i,j)-min(src))*(b‘-a‘)/(max(src)-min(src))+ aelse    dst(i,j)=src(i,j) 其中b‘=MAX(a,b), a‘=MIN(a,b), a=alpha, b=beta;2. 当norm_type!=CV_MINMAX:if mask(i,j)!=0    dst(i,j)=src(i,j)*a/norm (src,norm_type,mask)else    dst(i,j)=src(i,j)//a=alpha,函数norm的功能是计算norm(范数)的绝对值

The functions norm calculate an absolute norm of src1 (when there is no src2 ):

归一化:
把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内,达到数据缩放的目的。
是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如:原来很难在一张图上作出来,
归一化后就可以很方便的给出图上的相对位置

归一化作用:
便于数据处理,保证程序运行时收敛加快
归一化的具体作用是归纳统一样本的统计分布性。
归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。

归一化后可实现数据缩放,其主要优点:
能够避免大数值区间的属性过分支配了小数值区间的属性
能避免计算过程中数值复杂度,因为关键值通常依赖特征向量的内积(inner products),如,线性核和多项式核力,属性的大数值可能会导致数值问题。
我们推荐将每个属性线性缩放到区间[-1,+1]或者[0, 1]

//! finds global minimum and maximum array elements and returns their values and their locations
CV_EXPORTS_W void minMaxLoc(InputArray src, CV_OUT double* minVal,
CV_OUT double* maxVal=0, CV_OUT Point* minLoc=0,
CV_OUT Point* maxLoc=0,
InputArray mask=noArray());

图像平滑与图像模糊是同一概念,主要用于图像的去噪
模糊
将每一个像素点设置成它周边领域内像素的均值,均值可以是平均值、中值
正态分布
是一种钟形曲线,那么越接近中心,取值越大,反之越小
高斯模糊
将二维正态分布作为权重分配的模式,模糊半径,权重矩阵

//! smooths the image using Gaussian filter.
CV_EXPORTS_W void GaussianBlur( InputArray src, OutputArray dst, Size ksize,
double sigmaX, double sigmaY=0,
int borderType=BORDER_DEFAULT );
高斯滤波:
是将输入数组的每一个像素点与 高斯内核 卷积将卷积和当作输出像素值。
高斯核相当于对输出像素的邻域赋予不同的权值,输出像素点所在位置的权值最大(对应高斯函数的均值位置)
src输入图像,图片深度应该为CV_8U,CV_16U, CV_16S, CV_32F 以及 CV_64F之一
dst输出图像。
Ksize为高斯滤波器模板大小,其中ksize.width和ksize.height可以不同,但他们都必须为正数和奇数
sigmaX和sigmaY分别为高斯滤波在横线和竖向的滤波系数:
sigmaX表示高斯核函数在X方向的的标准偏差。
sigmaY表示高斯核函数在Y方向的的标准偏差
borderType为边缘点插值类型,默认值BORDER_DEFAULT

//! a synonym for normalized box filter
CV_EXPORTS_W void blur( InputArray src, OutputArray dst,
Size ksize, Point anchor=Point(-1,-1),
int borderType=BORDER_DEFAULT );
均值滤波:以原图对应像素为中心并与模板中心重叠,对该模板覆盖领域内全部像素求均值作为该像素的值来实现均值滤波。
功能:对输入的图像src进行均值滤波后用dst输出。
src输入图像
dst输出图像。
size为均值滤波器模板大小。
Anchor为锚点,如为Point(-1,-1),则锚点是滤波器的中心点。
borderType为边缘点插值类型。

//! smooths the image using median filter.
CV_EXPORTS_W void medianBlur( InputArray src, OutputArray dst, int ksize );
中值滤波:以原图对应像素为中心的与模板中心重叠,将模板覆盖领域内全部像素排序后的中间值就是滤波后像素的值了,所以模板长度必须为奇数
对椒盐噪声最有效的滤波器,去除跳变点非常有效。
src输入图像
dst输出图像。
ksize为均值滤波器模板大小,因为模板为正方形,所以只有一个参数。

原创粉丝点击