OpenCV各模块函数使用实例(10)--运动分析和目标跟踪(Motion Analysis and Object Tracking)

发布时间:2022-08-30 06:30

        这一节的运动分析和目标跟踪是提供一些分析图片或图片序列中的固定背景和运动目标的函数。这些函数能够帮助提取出图片序列中的背景和运动目标,可用于处理视频帧,检测视频场景中的运动对象。

(1)、cv::accumulate(InputArray src, InputOutputArray dst, 

                                         InputArray mask=noArray())

图像的累加操作函数。这个函数累加src的某些像素到dst:

 函数支持多通道图像。每一个通道都单独处理。

函数cv::accumulate 可用于采集和统计静止相机场景中的背景,以及进一步分割背景和前景。

参数

src

输入图像,类型为CV_8UC(n)CV_16UC(n)CV_32FC(n) 或CV_64FC(n)其中n 为正整数。

dst

累加图像,与输入图像有相同的通道数,深度为CV_32F 或 CV_64F。

mask

可选的操作屏蔽。

参见

accumulateSquareaccumulateProductaccumulateWeighted

(2)、cv::accumulateProduct (InputArray src1, InputArray src2, InputOutputArray dst, 

                                                InputArray mask=noArray())

加两个输入图像的像素积到累加图像。这个函数加两个图像的乘积或两个图像选定区域的乘积到累加图像dst

函数支持多通道图像。每个通道单独处理。

参数

src1

第一个输入图像,1- 或3-通道,8-位或32-位浮点类型。

src2

第二个输入图像,与src1有相同的尺寸和类型。

dst

累加图像,与输入图像有相同数量的同到,32-位或64-位浮点类型。

mask

可选的操作屏蔽。

参见

accumulateaccumulateSquareaccumulateWeighted

(3)、cv::accumulateSquare (InputArray src, InputOutputArray dst, 

                                                InputArray mask=noArray())

加原图像的平方到累加图像。这个函数加输入图像src2次幂或它的选定区域的2次幂到累加图像dst

函数支持多通道图像。每个通道单独处理。

参数

src

输入图像,有1- 或3-通道,8-位或32-位浮点类型。

dst

累加图像,与输入图像有相同的通道数,32-位或64-位浮点类型。

mask

可选的操作屏蔽。

参见

accumulateSquareaccumulateProductaccumulateWeighted

(4)、cv::accumulateWeighted (InputArray src, InputOutputArray dst,

                                                double alpha, InputArray mask=noArray())

更新连续图像流的平均值。这个函数计算输入图像src与累加图像dst的权重和,使得dst成为帧序列的连续平均值图像:

此时,alpha 用来调节更新速率(累加器有多快来“忘记”较早的图像)。这个函数支持多通道图像,每个通道单独处理。

参数

Src

输入图像,具有1- 或 3-通道,8-位或32-位浮点类型。

dst

累加图像,与输入图像有相同的通道数,32-位或64-位浮点类型。

alpha

输入图像的权重。

mask

可选的操作屏蔽。

参见

accumulateaccumulateSquareaccumulateProduct

(5)、cv::createHanningWindow (OutputArray dst, Size winSize, int type)

这个函数计算二维汉宁窗系数。细节参考相关资料。例子如下:

//建立一个类型为CV_32F,尺寸为100x100的汉宁窗

Mat hann;

createHanningWindow(hann, Size(100, 100), CV_32F);

参数

dst

存储汉宁窗系数的目标数组。

winSize

指定的窗口尺寸(宽和高二者都必须 > 1)。

type

建立的数组类型。

(6)、cv::phaseCorrelate (InputArray src1, InputArray src2, 

                                                InputArray window=noArray(), double *response=0)

        这个函数用于检测发生在两个图像之间的平移。这个操作利用傅里叶变换定理检测频域上的平移。它可用于快速图像校准和运动评估。更多信息请参考相关资料。

计算所提供的两个源数组的互功率谱,如果必要,这两个源数组使用getOptimalDFTSize连接到一起。这个函数执行下列方程:

  • 首先施加汉宁窗作用于每一个图像,以删除可能的边缘效应。这个汉宁窗被缓存用以提高处理速度,直到数组尺寸改变。
  • 其次计算每一个源数组的前馈DFT:

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号