将多个绘图的结果分配给 MATLAB 中的一个变量

Assign the result of multiple plots to one variable in MATLAB

假设你有一张图片。 您绘制此图像。

之后,您在该图像的顶部绘制一条绿色描边。 您可以使用 plot 函数轻松绘制此图。

在此初始绘图之后,您在同一图像的顶部添加第二个跟踪。 因此,就像这张图片中一样,您有一个包含两个图的图形。

如何在不保存到文件然后读取最终结果的情况下将多个绘图的结果存储到一个变量中? 如果我打印然后读取图像,我可以做到这一点,但我想要相同的结果,而无需额外的保存到文件的步骤。

有线索吗?

示例代码和图:

imshow(a)
hold on
plot(centroidsFiltered(:,2),centroidsFiltered(:,1),'.g','LineWidth',0.5)
plot(int32(centroidsFiltered(i,2)), int32(centroidsFiltered(i,1)), '.g', 'MarkerSize',20)

绘图得到的数据就是这个数字。

如何将所有结果信息存储到一个变量中?

数据可以在这里下载:https://expirebox.com/download/c95e9a0e5ac5530729f6960679ec9733.html

澄清 作为该图的输出变量,我想要的是原始图像矩阵,并更新了可感知绿线和绿色标记的矩阵位置。

您可以尝试使用 getframeSee Documentation

imshow(a)
hold on
plot(centroidsFiltered(:,2),centroidsFiltered(:,1),'.g','LineWidth',0.5)
plot(int32(centroidsFiltered(i,2)), int32(centroidsFiltered(i,1)), '.g', 'MarkerSize',20)

b = getframe(gca);

重现情节:

figure;
imshow(b.cdata)

注意:b.cdataa的大小不会完全一样。由于这是轴 b 的屏幕抓取,因此很可能在边框周围有一些额外的像素。但是,通过将单位仔细设置为像素并使用可选的 rect 输入到 getframe,您可能能够获得正确的输出尺寸。