Как нарисовать много прямоугольников в Matlab? - PullRequest
0 голосов
/ 13 января 2019

У меня есть картинка, которая подсчитывает количество пикселей из двух групп и вычисляет их. Это дает 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 голосов
/ 13 января 2019

То, что ваш код делает, это отображает изображение и рисует над ним прямоугольник каждый раз, когда обнаруживается местоположение. Я полагаю, что в конечном итоге вы видите много изображений друг на друге, каждое из которых скрывает прямоугольники, нарисованные ранее.

Вместо этого покажите изображение один раз, а затем нарисуйте прямоугольник только тогда, когда вы найдете местоположение. То есть переместите эти строки из цикла в начало кода:

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