2013-04-22 128 views
0

所以,我必须实现恒虚警率(CFAR)算法。这样的工作原理是这样: BackgroundWindow移动窗口实现

我使用的是,在目标窗口包含多个像素的情况下,这个操作符(CFAR)使用以下检测标准的概念

Equation2

其中μt是目标窗口中像素的平均值。在这种情况下,在PFA计算中t应该由t√n(其中n是目标窗口中的像素数)替换,其中μb是背景平均值,σb是背景标准偏差,t是检测器设计参数,由PFA由以下公式计算:

Equation3

现在,(!足以与已经方程式XD),我知道,我要实现在一个图像有些循环(这是一个二维矩阵)。我知道我的图像的像素距离比率(每个像素在两个方向上大约为10.054米)。我可以将用户输入的距离转换为像素大小,假设背景窗口为800m(约80像素),保护窗口为400m(约40像素),目标窗口为20m(约2像素)。我的问题是:

如何遍历图像?

问题并不像看起来那么容易,至少不是我。你看,我无法弄清楚,对于mxn像素,如何实现移动窗口。起初我认为目标大小是固定的,我可以对像素坐标进行硬编码,但这不是重点。任何帮助表示赞赏:)

编辑: 目标窗口在警卫窗口内移动。完成之后,警卫窗口将移动到背景窗口内,上面将再次发生,最后背景窗口将移动到整个图像上!

+0

哪个窗口你要搬家?它们会在移动时重叠还是会离散地发展? – Dipto 2013-04-22 10:53:27

+0

啊,让我更新那一点:) – 2013-04-22 10:59:11

+0

它们会重叠吗? – Dipto 2013-04-22 11:02:21

回答

2

假设Windows进度从左到右,然后从上到下,伪代码可能如下:

考虑每个窗口的四个属性,即bg_topbg_leftbg_widthbg_hightgrd_top。 ..等

也考虑在内窗口将永远不会到外面去穿越外窗,

将所有Windows左边和顶部图像的左侧和顶部,这可能是(0,0)。

现在循环

while(bg_top+bg_hight <= image_top+image_hight) 
{ 
    while(bg_laft+bg_width <= image_left+image_width) 
    { 
     while(grd_top+gdr_hight <= bg_top+bg_hight) 
     { 
      while(grd_left+gdr_width <= bg_left+bg_width) 
      //some pixels may be left out if the inner and outer window sizes are not divisible, it will not change the window size to fit in the last case. 
      { 
       while(target_top+target_hight <= grd_top+grd_hight) 
       { 
         while(target_left+target_width <= grd_left+grd_width) 
         // the condition will move till end but never goes outside nor changes the inner window size to fit 
         { 
          //DO THE PROCESSING 
          //target_left+=target_width; //if they do not overlap 
          target_left+=1; //if they overlap 
         } 
         target_top+=target_hight// don't overlap. use 1 for overlaping 
         // use 1 if it goes down 1 pixel 
       } 
       grd_left+=grd_width; //or 1 
      } 
      grd_top+=grd_hight; //or 1 
     } 
     bg_left+=bg_width; //or 1 
    } 
    bg_top+=bg_hight; //or 1 
} 
+0

谢谢!让我来运行它,我会回复你XD巨大的感谢! – 2013-04-22 11:35:38