我正在实现粒子滤波器算法,以便跟踪视频序列中的移动对象(每帧都是彩色图像)。该算法迭代视频的帧,并且在每次迭代时,它将跟踪对象(即前一帧中包含跟踪对象的子图像)与当前帧的N个不同部分进行比较(即可能包含该对象的子图像)。
跟踪对象的大小可能会随着时间的推移而变化,并且分配给N的值可能会很高(100或几百),那么需要解决的问题如下。
- 找到一种快速方法来比较图像的两个部分,因为每次迭代都会执行 N 次。
- 比较方法也应该是可靠的(即,在N个可能的子图像中,应该选择与前一帧中包含跟踪对象的子图像最相似的一个)。里>
- 最后,比较操作必须遵守实时约束:执行比较所需的时间必须恒定,或者必须具有已知的上限。
我相信满足第三个约束的唯一方法是选择要比较的子图像的最大尺寸:这意味着必须调整任何较大的子图像的大小。您对此有何看法?
我可以使用什么方法进行比较?
最佳答案
我想您可以尝试使用均方误差法来比较图像,它通常用于估计两个图像的相似程度。
function [ mse ] = MSE( X, Y )
%MSE
[x,y] = size(X);
mse = 0;
for i=1:x
for j=1:y
mse = double(mse) + double(power((X(i,j)-Y(i,j)),2));
end
end
mse = mse / (x*y);
end
关于image - 什么是快速可靠地比较图像的好比较方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333113/