【问题标题】:What could be a good comparison method to compare images in a fast and reliable way?以快速可靠的方式比较图像的好比较方法是什么?
【发布时间】:2012-10-31 06:01:24
【问题描述】:

我正在实施粒子滤波算法,以便跟踪视频序列中的移动对象(每一帧都是彩色图像)。该算法对视频的帧进行迭代,在每次迭代时,将跟踪对象(即前一帧中包含跟踪对象的子图像)与当前帧的N个不同部分进行比较(即可能包含对象的子图像)。

被跟踪物体的大小可能会随着时间的推移而变化,分配给N的值可能很高(100,或者几百),那么需要解决的问题如下。

  1. 找到一种快速的方法来比较图像的两个部分,因为每次迭代都会执行 N 次。
  2. 比较方法也应该是可靠的(即在N个可能的子图像中,选择与前一帧中包含被跟踪对象的子图像最相似的一个)。
  3. 最后,比较操作必须遵守实时约束:执行比较所需的时间必须是恒定的,或者它必须具有已知的上限。

我相信满足第三个约束的唯一方法是选择要比较的子图像的最大尺寸:这意味着必须调整任何较大的子图像的大小。你怎么看?

我可以使用什么比较方法?

【问题讨论】:

  • 这是一个非常广泛的问题,但您可以先减去两者的归一化版本(归一化为零均值和单位方差)...

标签: image matlab image-processing opencv real-time


【解决方案1】:

我想你可以尝试使用均方误差法比较图像,它通常用于估计两张图像的相似程度。

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

【讨论】:

    猜你喜欢
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 2011-04-19
    • 2010-10-25
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    相关资源
    最近更新 更多