在matlab中突出显示滑动窗口

时间:2014-05-24 11:27:08

标签: matlab image-processing

我有以下代码,在图像Final上创建一个滑动窗口。

我创建了原始图片的副本:

ZwindowedMarked=Final;

我将滑动图像应用于原始图像

N = 32;
 info = repmat(struct, ceil(size(Final, 1) / N), ceil(size(Final, 2) / N)); 
  for row = 1:N:size(Final, 1)%loop through each pixel in the image matrix
     for col = 1:N:size(Z, 2)
         r = (row - 1) / N + 1;
         c = (col - 1) / N + 1;

          imgWindow = Final(row:min(end,row+N-1), col:min(end,col+N-1));           
          average = mean(imgWindow(:)); 
          window(r, c).average=average;
          display(window(r, c).average);



        % if mean pixel intensity is greater than 200 then highlight the window

        if average>180  
        ZWindowedMarked  = insertShape(Z, 'rectangle', [col row 32 32]);
        end 

    end 
 end 
 figure(2);
 imshow(ZWindowedMarked)

然而,虽然有很多平均大于180的窗口,但它只在图像上显示一个矩形。任何人都可以告诉我如何在同一图像上突出显示平均大于180的所有滑动窗口吗?

由于

1 个答案:

答案 0 :(得分:1)

从上面的代码中,我们可以假设最终 Z ZWindowedMarked 最初都是相同的图像(在迭代之前) ?您可能希望在代码中明确说明并决定使用 Z 最终,但不能同时使用。

您需要做些什么来确保在窗口图像上绘制所有矩形( ZWindowedMarked )并将标记的图像传递给 insertShape 函数

 % if mean pixel average is greater than 180 then highlight the window
 if average>180  
   ZWindowedMarked  = insertShape(ZWindowedMarked, 'rectangle', [col row 32 32]);
 end 

而不是将原始未触动的 Z 传递给上述函数。 (注意评论的变化。)

希望这有帮助!