【问题标题】:How to improve the speed of marker plotting?如何提高标记绘图的速度?
【发布时间】:2017-09-27 10:22:56
【问题描述】:

我有一堆图像,我想在其中绘制跟踪 + 2D 位置标记随时间变化(即 300 个图像,跟踪从位置 (1,1) 到 (300,300) --> 让我们假设一条直线用于此目的的对角线。

使用绘图功能可以轻松地在图像上绘制此跟踪。绘制实际跟踪非常耗时。我能够做到这一点的唯一方法是使用vision.MarkerInserter 并在循环中使用step 函数(for 或 while):

markerInserter = vision.MarkerInserter('Shape','Circle','BorderColor','Custom','CustomBorderColor','red', ...'Fill',1,'FillColor','Custom','CustomFillColor',[255],'Size',6,'Opacity',0.88);

frame = step(markerInserter, frame_copia,[int32(centroidsFiltered(i,2)) int32(centroidsFiltered(i,1))]);
imshow(frame,'Border', 'tight'); hold on

plot(centroidsFiltered(:,2),centroidsFiltered(:,1),colour,'LineWidth',0.5)

是否有任何更快的方法可以在不使用 step 或 vision.markerinserter 函数的情况下在图像中绘制此跟踪?

【问题讨论】:

  • 请不要在有人回答后将您的问题转换为另一个问题。这使得他们的回答和努力无效,并且已被版主明确禁止,请参阅this question on meta。您得到了原始问题的答案,所以请为您的第二部分提出另一个问题。
  • 收到错误Undefined function or variable 'frame_copia'.
  • @Poelie 您需要制作一些名为“frame_copia”的图像。然后才尝试代码。
  • 您应该编辑您的问题以使用示例图像(例如peppers.png'greens.jpg''cameraman.tif' 等)并相应地提供centroidsFiltered 以使您的问题可重现。当人们能够按原样运行提供的代码时,他们更愿意研究问题。顺便说一句,当您使用省略号 ... 时,您停止在同一行写入(cmets 除外)并从下一行继续,这不是您提供的代码的情况(参考代码的第一行)。
  • 如果我的问题得到了正确的答案,不是绘制任何东西,而是在图像中定位某些特定对象(=跟踪)非常耗时。我说的对吗?

标签: matlab plot trace imshow


【解决方案1】:

不使用 MarkerInserter 类,只需使用内置的line 函数来绘制标记

【讨论】:

  • 试过了,确实加快了一点。
猜你喜欢
  • 2015-01-28
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多