使用 MATLAB 在图像上绘制矩形框
Plot rectangle boxes on image using MATLAB
我在这里开发了一些用于在图像上绘制框的代码,但我得到了
不同图像上的框。所有的盒子都应该在同一张图片中。
请帮助我。
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
您每次 运行 代码都会打开一个新的 window。在显示之前,您应该指定要使用的数字 window。
所以不是这个:
figure, imshow(J);
这样做:
figure(1), imshow(J);
那应该每次都在同一张图中显示图像 window(图号 1)。
我在这里开发了一些用于在图像上绘制框的代码,但我得到了
不同图像上的框。所有的盒子都应该在同一张图片中。
请帮助我。
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
您每次 运行 代码都会打开一个新的 window。在显示之前,您应该指定要使用的数字 window。
所以不是这个:
figure, imshow(J);
这样做:
figure(1), imshow(J);
那应该每次都在同一张图中显示图像 window(图号 1)。