如何在Matlab中绘制许多矩形?

时间:2019-01-13 12:49:30

标签: matlab image-processing filtering

我有一张图片,它计算两组像素的数量并进行计算。它为每个滑动窗口提供P作为回报。如果P大于6,它将变成红色,但是随着它的移动,在P > 6处,我不会得到带有红色矩形的图像。这就是我想要实现的。

有什么想法吗?

这是我的代码:

I = imread('image');

imH = size(I, 1);
imW = size(I, 2);


windowWidth = 30;
windowHeight = 30;


step = 1;

for r = 1:step:imH - windowHeight + 1
    for c = 1:step:imW - windowWidth + 1


        Win = I(r:r + windowHeight - 1, c:c + windowWidth - 1, :);

        post = [c r windowHeight windowWidth];



        if P > 6
            subplot(121); imshow(I); title 'Image';
            hold on;      
            rectangle('Position', post, 'FaceColor', '(1 0 0)'); 

        end
end

如何绘制P大于6的矩形?

1 个答案:

答案 0 :(得分:0)

您的代码要做的是显示图像,并在每次找到位置时在其上绘制一个矩形。我想您最终会在彼此之上有很多图像,每个图像都隐藏了先前绘制的矩形。

相反,只显示一次图像,然后仅在找到位置时才绘制矩形。也就是说,将这些行从循环中移到代码的顶部:

subplot(121); imshow(I); title 'Image';
hold on;