2016-05-26 7 views
1

Hier bin ich entwickelt einige Code zum Zeichnen von Boxen auf Bild, aber ich bekomme
Boxen auf anderes Bild. Alle Felder sollten dasselbe Bild haben. Bitte helfen Sie mir dabei.Plot Rechteckboxen auf Bild mit MATLAB

output image 1

output image 2

video = VideoReader('parking video1.mp4'); 
I = read(video,1); 
J = read(video,200); 
a=104; b=73; 
c=104; d=515; 
count=0;count1=0;count2=0; 
total=10; 

for i=1:5 

im1=imcrop(I,[a,b,283, 448]); 

im3=imcrop(J, [a,b,283, 448]); 

Background1 =abs(im1 - im3); 

grayImage1 = rgb2gray(Background1); 
% Convert to gray level 

thresholdLevel1 = graythresh(grayImage1); 
    % Get threshold. 

binaryImage1 = im2bw(grayImage1, thresholdLevel1); 
    % Do the binarization 


binaryImage1 = bwareaopen(binaryImage1,1000); 



ak=bwarea(binaryImage1); 


figure, imshow(J); 
hold on; 

    if ak>0 


    rectangle('Position',[a,b,283, 448],'Edgecolor', 'r'); 
    else 

    rectangle('Position',[a,b,283, 448],'Edgecolor', 'g'); 


    end 
a=a+280; 
end 

Antwort

1

Sie ein neues Fenster des Code jedes Mal Ihres Lauf öffnen. Sie sollten angeben, welches Zahlenfenster verwendet werden soll, bevor es angezeigt wird.

Anstatt also diese:

figure, imshow(J); 

dies tun:

figure(1), imshow(J); 

, dass das Bild in der gleichen Figur Fenster (Bild Nummer 1) jedes Mal zeigen.

+0

oder öffnen Sie die Abbildung vor dem Zyklus und verwenden Sie den Griff in der Schleife. Wie 'fig1 = figure;' und dann 'for ... figure (fig1) ... end'. – shamalaia

+0

es funktioniert nicht –

+0

Um ehrlich zu sein, ist Ihre Frage nicht so gut definiert. Es ist nicht offensichtlich, was Sie zu tun versuchen. Ich denke, dein Problem ist, dass das Bild mit dem roten Rechteck in einem Zahlenfenster und das mit dem Grün in einem anderen erscheint. Ist das korrekt? – kkuilla