从imshow绘图中删除灰色边框

3次观点(过去30天)
Erik Henegar.
Erik Henegar. 于2021年6月3日
评论: DGM. 2021年6月4日
我正在尝试从128x128的复杂双打矩阵创建图像,然后使用这些图像作为我使用深度学习工具箱的卷积神经网络的测试数据(我的训练图像是128x128 .png文件)。我正在使用imshow命令从矩阵绘制数据,因为该命令从绘图中删除轴和刻度标记,但此命令留在图像周围不需要的灰色边框。我无法获得所需的128x128图像,我得到185x160的图像。我还尝试使用imsave命令,但保存的图像变成了一个黑色框,不匹配绘制的图形。是否有任何其他方法可以只获得所需的128x128图像,没有任何边界或轴?这是我当前的代码:
图,imshow(complex_image_new_db,image_scale_bounds_new_c);
平等的;
套装(GCA,'单位''像素');%将轴单元设置为像素
x = get(gca,'位置');%获得轴的位置
设置(GCF,'单位''像素');%将图形单元设置为像素
y = get(gcf,'位置');%得到数字位置
设置(GCF,'位置',[y(1)y(2)x(3)x(4)]);%将图的位置设置为轴的长度和宽度
套装(GCA,'单位''标准化''位置',[0 0 1 1]);%将轴单元设置为像素

答案(1)

Chunru.
Chunru. 2021年6月4日
尝试以下命令
IMWRITE(x,map,filename,fmt)
其中x是你拥有的数据矩阵(它应该是真实的),地图是您使用的Colourmap,FMT应该是'PNG'。
1条评论
DGM.
DGM. 2021年6月4日
完全正确。如果图像数据可用,只需使用IMWrite。虽然还有一个额外的东西。OP的图像数据可能不会缩放到标准图像数据范围,因此用于IMShow()的语法和黑色输出问题。
%假设图像是灰度
imwrite(mat2gray(myimage,mydatarange),'不必要地隆重林名.png'
Mat2Gray()将根据图像的指定范围和数字类重新划分图像到标准数据范围。如果留下范围未指定,则会自动使用[MIN MAX]。

登录评论。

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!

被某某人翻译