ps分辨率像素英寸和厘米的区别_05-Matplotlib中图像的尺寸和分辨率

Matplotlib中图像的尺寸和分辨率

上一篇详细讨论了显示器的尺寸、分辨率,PPI,DPI的概念,在这个基础上,我们讨论图像的尺寸和分辨率就要容易得多了,如果你还没有阅读上一篇,而对这些概念又不是非常、非常地清晰,建议你先阅读上一篇。

先做一个小调查:

matplotlib 绘图,使用下面的命令创建的figure尺寸和分辨率是多少:

import matplotlib.pyplot as pltfiga = plt.figure()

非常清晰的,请在评论区回复1,似乎知道但不是很清晰的回复0.5,根本不知道或者根本没想过这个问题的回复0。

谢谢!你的回复对我后面的写作有重要的参考价值。

图像image和图形graphic

前面有约:用图像image表示位图、栅格图形;用graphic表示矢量图形。

将一个区域(常见的为矩形,后面就以矩形为例)划分为若干个小格子(栅格),每个格子只能用一种颜色填充,将所有格子填上各种颜色,用这种方式表达的图像就是栅格图像Image。

即使整个图像只有一根直线,这根直线也是用一个一个的小格子排列而成的。

2efa72e6d8bcd9d0fc011436e45b33a5.png

图一:原图

如果你需要文章中用到的一些素材,如图片、代码、数据集等,请移步QQ群“Python草堂”群号:457079928 下载。

在PS中打开上图,放大到1600%:

cb2d41a9a9c8f0239bc84dd6a46d6fe1.png

图二:放大图

就能直观地理解栅格图像的含义了。

graphic,矢量图形,则是用数据语言描述的图形,比如,直线只需要给出两个端点;圆只需要给出圆心和半径即可。

matplotlib在绘制时,绘制的是矢量图形。在存储、交换、使用时大多数又是栅格图像了!

图像大小

在PS里查看图像大小:

5ee0369deb52e6b60183702731079e90.png

发现PS有两种表示图像大小的方式:

  • 像素大小: 宽度,250 像素;高度344 像素
  • 文档大小:宽度,2.12 厘米;高度2.91厘米;分辨率R(resolution) ,300 像素/英寸

注意,这里的文档大小,其实就是图像的物理尺寸,如果我们按照100%的比例打印这幅图像,打印出来的照片区域就是 2.12厘米*2.91厘米。

这两种尺寸的关系如下:

bd247c0b792eeb3df658fb232b5e8c02.png

在上一篇中讲过,像素 pixels 严格来说是显示分辨率。

在计算机屏幕上,1 px,传递到我们眼睛,给出的直观大小是可变的,这就是图像的缩放。

图一中我们的眼睛无法区分出 1 px的格子,当放大到1600%时,我们的眼睛能清晰地区分出 1 px的单元格。

请注意:这时候,图一的实际尺寸、图像分辨率并没有变化;我们改变的是它的显示分辨率。

图像分辨率和显示分辨率

为什么说是改变了图像的显示分辨率呢?

我的电脑显示屏幕的当前显示分辨率已设置好,是1920px*1080px,96DPI,也就是说每英寸长度上能显示96个px。

请问:图一在PS中以100%的比例显示时,占据我的屏幕的物理空间是多大?

图一的尺寸如下:

  • 像素大小: 宽度,250 像素;高度344 像素
  • 文档大小:宽度,2.12 厘米;高度2.91厘米;分辨率R(resolution) ,300 像素/英寸

我们先来做一个推算:

a16772c5fba53c36814c60f0706d23fe.png

可以计算出该图像在我的屏幕上应该占据:

8618bb405cf4f62144c9b0142d9346cb.png

宽6.625厘米,高9.09厘米的屏幕空间。

原图像的物理尺寸是:2.12厘米*2.91厘米,100%比例显示时真会占据这么大的空间吗?

回到PS中,按照100%比例显示图一,设置PS的标尺单位为毫米,并显示网格线。

ce0d03c0436e033d7ff43460f47ee1c6.png

我用尺子测量了一下图一100%比例显示时,在我的屏幕上占据的空间就是:6.6厘米*9.1厘米。

再问:在我的屏幕上,如果图一占据的屏幕物理空间和图一的物理尺寸一样,即2.12厘米*2.91厘米,显示的缩放比例应该是多少?

有兴趣的,请在评论里写上你的答案。

总结:

  1. image的物理尺寸,就是你以100%的比例打印图像时,打印出的照片的物理尺寸。
  2. image的尺寸有两种表示方式:像素,inches(或厘米、毫米等长度单位);
  3. 用像素表示的图像尺寸结合DPI可以计算出图像的物理尺寸;
  4. image有图像分辨率(设定后是固定的)和显示分辨之分;
  5. image在屏幕上的放大和缩小,改变的是图像的显示分辨率;image的实际分辨并没有改变;
  6. image是将图像区域划分为方格矩阵,每个方格填充各种色彩来表达图像的。

栅格矩阵表达图像的方式,让用Numpy的ndarray来存储、交换、重现、变换image成为很自然的事。

关注头条号”Python草堂“,轻松阅读下一篇:matplotlib 应知应会的用numpy存储、交换、修改图像。

相关代码、图像、数据资源请移步“Python草堂”群457079928下载。

8c5f030d838a5dbd349ae110cc3f6225.png

你的评论和赞是我前进的动力哟!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值