matplotlib绘图figsize、savefig.dpi和figure.dpi的关系

您所在的位置:网站首页 分辨率与图片大小的关系图 matplotlib绘图figsize、savefig.dpi和figure.dpi的关系

matplotlib绘图figsize、savefig.dpi和figure.dpi的关系

2024-07-06 07:39| 来源: 网络整理| 查看: 265

最近开始用图像做深度学习了,由于是新手,在图像的生成和加载上面遇到很多问题,特此记录。

内联代码片。

// 用matplotlib绘图并保存 plt.rcParams['figure.figsize'] = (4.48, 4.48) #2.24, 2.24 设置figure_size尺寸 plt.rcParams['savefig.dpi'] = 50 #图片像素 # plt.rcParams['figure.dpi'] = 300 #分辨率 plt.plot(t,X[0]) plt.axis('off') plt.margins(0,0) # plt.show() plt.savefig('F:\\raw\\T_0\\figure.jpg') 我想用ResNet50这个网络,这个网络的输入图片像素要求是(224,224), 最开始我直接plt自己的图片,没有设置图片大小,绘制出来的图片像素是(640,480),显然太大了,怎么办呢? 直接先用pytorch的transforms.Resize([256, 256]),再transforms.RandomCrop(224), 这样输入就满足要求了,但是问题来了, Resize之后的图片太模糊,这样会直接影响深度模型提取图像特征。

因此需要在绘制图片是就达到像素(224,224)的要求,以后想换网络模型改变输入大小,可以用plt生成任意像素的图片,非常方便。

在网上查了一下,好多人都没说清楚怎么生成自己想要的像素大小的图片,也可能是我没找到。

一直搞不懂设置figure.figsize 和savefig.dpi 的区别和关系。对于做深度学习的人来说,我们关注的是图片的像素大小,敲重点:用matplotlib绘图的时候生成图片的像素大小=figure.figsize * savefig.dpi。例如上面代码生成的图片像素就是4.48*50,即(224,224)。

另外savefig.dpi设置的越小图片越清晰

用过plt的朋友应该都知道还有个figure.dpi可以设置分辨率,小白只想听到通俗易懂的解释,设置这个到底会影响什么呢?

figure.dpi 不会对保存的图片产生任何实质影响,只会影响plt.show()展示出来的图片。

对于做深度学习的人来说,不希望用来训练的图片有坐标轴和边框这些无用信息,那么**plt.axis(‘off’)**就是掉坐标轴,**plt.margins(0,0)**就是去掉白边。

第一次写,只想记录学习过程,不喜轻喷!有不对的地方欢迎各位高手指正,互相学习。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3