目标追踪经典算法MOSSE实现代码中的一些matlab函数记录(2)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_36880027/article/details/102728265

自定义函数preprocess详解

function img = preprocess(img)
[r,c] = size(img);
win = window2(r,c,@hann);
save win
eps = 1e-5;
img = log(double(img)+1);
img = (img-mean(img(:)))/(std(img(:))+eps);
img = img.*win;
end

此处传入一张img图像并取得长宽r c。win = window2(r,c,@hann)产生一个r*c大小的二维汉明窗。一维汉明窗是一个余弦函数,二维汉明窗的任意中心垂直切面也是余弦函数(但不是同一个余弦函数)。win = window2(r,c,@hann)产生的汉明窗如下:

win = window2(r,c,@hann)%r = 106,c = 122
img = log(double(img)+1);
img = (img-mean(img(:)))/(std(img(:))+eps);

先来看log函数,由log(x+1)函数曲线可知,x越大经过log后会变得更小,所以img = log(double(img)+1);函数主要是将图像的对比度拉低,从而突出原图像的暗部信息。

log变换前后对比

下面img = (img-mean(img(:)))/(std(img(:))+eps)是数据的标准化。 图像减去均值有利于去除每帧图像中共同的部分,对于目标追踪而言,相当于弱化背景。图像减去均值除以标准差,得到的像素值更接近正态分布。正态分布的图像,信息集中于中心,便于与汉明窗进行点乘操作。

标准化前后对比

最后将标准化后的图像与汉明窗进行点乘,则能保留物体主要特征而去除部分背景噪声。

1.未标准化/标准化图像与二维汉明窗点乘
2.未标准化/标准化图像与二维汉明窗点乘

结论

preprocess函数的作用是:产生与图像size相同的二维汉明窗,将log变换后的图像标准化并与二维汉明窗相乘。

(新手撰写,欢迎批评指正!)

猜你喜欢

转载自blog.csdn.net/qq_36880027/article/details/102728265