离散傅里叶变换函数的补充

前言

我的上一篇的博客的关于傅里叶变换的一些函数补充,理解不易,且行且珍惜~

测试代码在上一篇。
原图:

测试图;

一、getOptimalDFTSize()函数

返回给定向量尺寸经过DFT变换后结果的最优尺寸大小。其函数定义:

1
int getOptimalDFTSize(int vecsize)

int vecsize: 输入向量尺寸大小(vector size)
DFT变换在一个向量尺寸上不是一个单调函数,当计算两个数组卷积或对一个数组进行光学分析,它常常会用0扩充一些数组来得到稍微大点的数组以达到比原来数组计算更快的目的。一个尺寸是2阶指数(2,4,8,16,32……)的数组计算速度最快,一个数组尺寸是2、3、5的倍数(例如:300 = 5*5*3*2*2)同样有很高的处理效率。
getOptimalDFTSize()函数返回大于或等于vecsize的最小数值N,这样尺寸为N的向量进行DFT变换能得到更高的处理效率。在当前N通过p,q,r等一些整数得出N = 2^p*3^q*5^r.
这个函数不能直接用于DCT(离散余弦变换)最优尺寸的估计,可以通过getOptimalDFTSize((vecsize+1)/2)*2得到。

二、magnitude()函数

函数原型:

1
void magnitude(InputArray x, InputArray y, OutputArray magnitude)

InputArray x: 浮点型数组的x坐标矢量,也就是实部
InputArray y: 浮点型数组的y坐标矢量,必须和x尺寸相同
OutputArray magnitude: 与x类型和尺寸相同的输出数组

三、copyMakeBorder()

扩充图像边界,其函数定义如下:

1
2
3
4
5
6
7
8
9
10
void copyMakeBorder(
InputArray src,
OutputArray dst,
int top,
int bottom,
int left,
int right,
int borderType,
const Scalar& value=Scalar()
)

InputArray src: 输入图像
OutputArray dst: 输出图像,与src图像有相同的类型,其尺寸应为Size(src.cols+left+right, src.rows+top+bottom)
int类型的top、bottom、left、right: 在图像的四个方向上扩充像素的值
int borderType: 边界类型,由borderInterpolate()来定义,常见的取值为BORDER_CONSTANT
const Scalar& value = Scalar(): 如果边界类型为BORDER_CONSTANT则表示为边界值

四、normalize() 函数

归一化就是把要处理的数据经过某种算法的处理限制在所需要的范围内。首先归一化是为了后面数据处理的方便,其次归一化能够保证程序运行时收敛加快。归一化的具体作用是归纳同意样本的统计分布性,归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布,在机器学习算法的数据预处理阶段,归一化也是非常重要的步骤。

1
2
3
4
5
6
7
8
9
void normalize(
InputArray src,
OutputArray dst,
double alpha=1,
double beta=0,
int norm_type=NORM_L2,
int dtype=-1,
InputArray mask=noArray()
)

InputArray src: 输入图像
OutputArray dst: 输出图像,尺寸大小和src相同
double alpha = 1: range normalization模式的最小值
double beta = 0: range normalization模式的最大值,不用于norm normalization(范数归一化)模式
int norm_type = NORM_L2: 归一化的类型,主要有 NORM_INF: 归一化数组的C-范数(绝对值的最大值)
NORM_L1: 归一化数组的L1-范数(绝对值的和)
NORM_L2: 归一化数组的L2-范数(欧几里得)
NORM_MINMAX: 数组的数值被平移或缩放到一个指定的范围,线性归一化,一般较常用。
int dtype = -1: 当该参数为负数时,输出数组的类型与输入数组的类型相同,否则输出数组与输入数组只是通道数相同,而depth = CV_MAT_DEPTH(dtype)
InputArray mask = noArray(): 操作掩膜版,用于指示函数是否仅仅对指定的元素进行操作。