如何使用 Matlab 视觉工具箱和步进函数绘制多个形状?

How to draw multiple shapes using Matlab vision toolbox and step function?

我正在尝试使用这些函数将 2 个形状(圆形和矩形)插入图像。但我无法做到这一点。 这是我的代码

J = step(shapeInserter, I, bbox); %bbox is rectangle which is already defined
J = step(shapeInserter, I, circle); %circle is circle which is already defined
imwrite(J,'image.jpg','jpg'); % it draws only the circle

我有很长的路要保存矩形图像然后再次加载以绘制圆并重新保存。我希望避免这样做,因为它真的很耗时。

我正在尝试做这样的事情(类似于绘图函数)

hold on
%draw circle
%draw rectangle
hold off
imwrite(J,'image.jpg','jpg');

请指教,谢谢

vision.ShapeInserter对象有一个属性Shape,可以设置为

  • 'Rectangles'
  • 'Circles'
  • 'Lines'
  • 'Polygons'

默认设置为'Rectangles'。要使用同一个 ShapeInserter 对象放置一个圆,您必须首先通过调用 release(shapeInserter); 并通过 set(shapeInserter,'Shape','Circles') 修改 Shape 属性 来释放它。然后就可以再次调用step方法插入圆了。

这是一个小例子:

I = imread('cameraman.tif');
rectangle = int32([10,10,50,60]);
circle = int32([200,200,40]);
shapeInserter = vision.ShapeInserter('Fill',true);

J = step(shapeInserter,I,rectangle);

release(shapeInserter);
set(shapeInserter,'Shape','Circles');
K = step(shapeInserter,J,circle);

imshow(K);

我完全不了解 Matlab 图像的东西,但这里有一些非常简单的方法:

   frame=imread( '/home/omido/DeepLearning/matlab_segmentation/track/track/Image2.jpg' );
        result = insertShape(frame, 'FilledRectangle', [100,100,100,100], 'Color', 'green');
result = insertShape(result, 'FilledRectangle',  [200,200,200,200]  , 'Color', 'yellow');
        imshow(result);

这是结果:

和之前的回答一样,有多种形状,你可以找到它们here