2016-05-26 103 views
1

這裏我開發了一些用於繪製圖像框的代碼,但是我在不同的圖像上獲取了
框。所有的盒子應該在相同的圖像。 請幫我。使用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 

回答

1

您在您的每一次運行該代碼打開一個新窗口。您應該在顯示之前指定要使用哪個圖形窗口。

因此,不是這樣的:

figure, imshow(J); 

做到這一點:

figure(1), imshow(J); 

這應該顯示在同一圖窗口每次(圖號1)的圖像。

+0

或者在for循環之前打開數字並使用循環中的句柄。像'fig1 = figure;'然後'爲... figure(fig1)... end'。 – shamalaia

+0

它不起作用 –

+0

說實話,你的問題並沒有很好的定義。這是不明顯的你想要做什麼。我認爲你的問題是,帶有紅色矩形的圖像出現在一個數字窗口中,綠色的圖像出現在另一個數字窗口中。那是對的嗎? – kkuilla