如何将图像上的绘图线保存为 .mat 文件
Posted
技术标签:
【中文标题】如何将图像上的绘图线保存为 .mat 文件【英文标题】:how save ploted lines on an image as a .mat file 【发布时间】:2019-11-16 11:25:16 【问题描述】:我有一些图像,我正在展示它们并在它们上面绘制线条,我如何在 Matlab 中将带有绘制线条的原始图像保存为 .mat 文件?
figure,imshow(geo.^0.25,[]);hold on;
plot(1:512,size(geo,1)-aa,'w','LineWidth',3);
【问题讨论】:
【参考方案1】:您可以使用getframe 和frame2im:
h = figure; %Keep the figure's handle in h
imshow(geo.^0.25,[], 'border', 'tight'); %Plot image without borders
hold on;
plot(1:512,size(geo,1)-aa,'w','LineWidth',3);
I = frame2im(getframe(h)); %Get the displayed "frame", and convert it to image.
save('I.mat', 'I'); %Save I (RGB matrix) to mat file.
【讨论】:
谢谢,我如何评估线条绘制在它们上面的像素?我的意思是我想要将线条绘制在它们上面的所有像素都变成白色像素。 对不起,我不明白。你想让这条线只覆盖白色像素吗?您希望线条颜色为白色吗?geo
图片的格式是什么,是灰度还是RGB(彩色)?
我认为你最好发布一个新问题,并参考(链接)到上面的帖子。我建议您上传一个示例输入图像和一个示例输出图像(用 MS 油漆标记一些东西)。删除不相关的部分,如geo.^0.25
。
您有计算机视觉工具箱的许可吗?我认为直接在图像上画线(作为矩阵)而不是使用plot
(有情节,你需要使用frame2im(getframe(h))
,它的鲁棒性较差。见insertShape。【参考方案2】:
虽然输出是 fig 而不是 mat 文件,但您可能需要查看 matlab savefig
命令。它允许您保护图形并稍后在 MATLAB 中打开它们。
【讨论】:
以上是关于如何将图像上的绘图线保存为 .mat 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Highcharter 绘图保存为本地磁盘上的图像?
如何在opencv中将绘制在图像上的画笔绘图保存为填充和单独的二进制掩码?