【问题标题】:ImageIO - get image Width and Height from loaded imageImageIO - 从加载的图像中获取图像的宽度和高度
【发布时间】:2018-04-17 16:00:33
【问题描述】:

我需要使用 imageio 获取图像的宽度和高度,使用 imread 将图像加载到 imageio 中,如何获取图像的高度和宽度,或者换句话说,图像的分辨率?在documentation 中,它提到它将返回 numpy 数组

示例:

>>> from imageio import imread
>>> image_date = imread('c:/myImage.png')

当我打印出来时,我相信它会返回一个颜色数组列表

>>> print image_date
[[[ 18  23  16]
  [ 31  32  24]
  [ 34  29  23]
  ..., 
  [ 97  73  49]
  [ 95  73  50]
  [ 94  72  49]]

 [[ 23  24  18]
  [ 30  30  22]
  [ 36  29  21]
  ..., 
  [ 98  74  50]
  [ 95  73  50]
  [ 95  73  50]]

 [[ 32  27  21]
  [ 34  29  23]
  [ 37  28  21]
  ..., 
  [ 94  72  48]
  [ 97  72  50]
  [ 97  72  50]]

 ..., 
 [[ 43  35  24]
  [ 46  36  26]
  [ 48  36  24]
  ..., 
  [ 47  31  18]
  [ 47  31  18]
  [ 47  30  20]]

 [[ 59  56  47]
  [ 59  55  46]
  [ 59  50  41]
  ..., 
  [ 49  33  20]
  [ 48  32  19]
  [ 48  32  19]]

 [[114 115 107]
  [104 104  96]
  [100  93  85]
  ..., 
  [ 48  32  19]
  [ 48  32  19]
  [ 47  31  18]]]

有什么想法吗?提前致谢。

【问题讨论】:

    标签: python-2.7 numpy python-imageio


    【解决方案1】:

    image_date 是一个 numpy 数组,因此您可以使用 shape 属性。例如:

    $ file black.png
    black.png: PNG image data, 700 x 450, 8-bit/color RGB, non-interlaced
    

    所以black.png 是一个宽度为 700 像素、高度为 450 像素的图像。 然后在 Python 中:

    imageio.imread('black.png').shape
    

    输出:

    (450, 700, 3)
    

    【讨论】:

    • 我明白了……这行得通!所以这意味着在您的示例中,宽度数组的每个单元格中都有一个 3(RGB)数组,并且每个宽度数组位于高度数组的每个单元格中,或者换句话说,imageio 从左上角到右下角读取图像正确吗?
    • 是的,numpy数组是3维的,第一个是高度,第二个是宽度,第三个是RGB通道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2010-11-18
    • 1970-01-01
    • 2014-07-15
    • 2012-03-27
    • 2011-04-10
    相关资源
    最近更新 更多