【发布时间】: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 除外)并从下一行继续,这不是您提供的代码的情况(参考代码的第一行)。 -
如果我的问题得到了正确的答案,不是绘制任何东西,而是在图像中定位某些特定对象(=跟踪)非常耗时。我说的对吗?