zoukankan      html  css  js  c++  java
  • scipy.misc.imread()函数解析(最清晰的解释)

    欢迎关注WX公众号:【程序员管小亮】

    scipy.misc.imread()函数用于从文件中读取图像作为数组。

    更多的读取图片的方法可以看这个博客——【超分辨率】各种python图像库的图片读取方法总结
    scipy.misc.imread(name, 
    	flatten=False, 
    	mode=None
    )
    

    参数:

    • name:str或file对象。要读取的文件名或文件对象。

    • flatten:bool,可选。如果为True,则将颜色层展平为单个灰度图层。

    • mode:str,可选。将图像转换为例如的模式’RGB’。

    返回:

    • imread:ndarray。通过读取图像获得的阵列。

    注意:

       """
        Notes
        -----
        `imread` uses the Python Imaging Library (PIL) to read an image.
        The following notes are from the PIL documentation.
        `mode` can be one of the following strings:
        * 'L' (8-bit pixels, black and white)
        * 'P' (8-bit pixels, mapped to any other mode using a color palette)
        * 'RGB' (3x8-bit pixels, true color)
        * 'RGBA' (4x8-bit pixels, true color with transparency mask)
        * 'CMYK' (4x8-bit pixels, color separation)
        * 'YCbCr' (3x8-bit pixels, color video format)
        * 'I' (32-bit signed integer pixels)
        * 'F' (32-bit floating point pixels)
        PIL also provides limited support for a few special modes, including
        'LA' ('L' with alpha), 'RGBX' (true color with padding) and 'RGBa'
        (true color with premultiplied alpha).
        When translating a color image to black and white (mode 'L', 'I' or
        'F'), the library uses the ITU-R 601-2 luma transform::
            L = R * 299/1000 + G * 587/1000 + B * 114/1000
        When `flatten` is True, the image is converted using mode 'F'.
        When `mode` is not None and `flatten` is True, the image is first
        converted according to `mode`, and the result is then flattened using
        mode 'F'.
        """
    

    以下是翻译:

    imread使用Python Imaging Library(PIL)读取图像。以下注释来自PIL文档

    mode可以是以下字符串之一:

    • ‘L’(8位像素,黑白)
    • ‘P’(8位像素,使用调色板映射到任何其他模式)
    • ‘RGB’(3x8位像素,真彩色)
    • ‘RGBA’(4x8位像素,带透明蒙版的真彩色)
    • ‘CMYK’(4x8位像素,分色)
    • ‘YCbCr’(3x8位像素,彩色视频格式)
    • ‘I’(32位有符号整数像素)
    • ‘F’(32位浮点像素)

    PIL还为一些特殊模式提供有限的支持,包括’LA’(带有alpha的’L’),‘RGBX’(带填充的真彩色)和’RGBa’(带有预乘alpha的真彩色)。

    将彩色图像转换为黑白(模式“L”,“I”或“F”)时,库使用ITU-R 601-2亮度转换:

    L=R299/1000+G587/1000+B114/1000L=R*299/1000+G*587/1000+B*114/1000

    flatten为True时,使用mode“F”转换图像。当mode不是None并且flatten为True时,首先根据mode转换图像,然后使用mode’F’flatten结果。

    例子:

    from PIL import Image
    import scipy.misc
    
    a = Image.open('1.jpg')
    d = Image.open('1.jpg').convert('RGB')
    print(type(a))
    print(type(d))
    print(a)
    print(d)
    
    b = scipy.misc.imread('1.jpg')
    e = scipy.misc.imread('1.jpg',mode='RGB')
    print(type(b))
    print(type(e))
    print(b)
    print(e)
    
    <class 'PIL.JpegImagePlugin.JpegImageFile'>
    <class 'PIL.Image.Image'>
    <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x336 at 0x1F3D1C406A0>
    <PIL.Image.Image image mode=RGB size=500x336 at 0x1F3C9879E48>
    
    <class 'numpy.ndarray'>
    <class 'numpy.ndarray'>
    [[[221 227 225]
      [222 226 225]
      [220 224 223]
      ...
      ...
      [ 27  21   0]
      [ 12   7   0]
      [ 11   8   0]]]
      
    [[[221 227 225]
      [222 226 225]
      [220 224 223]
      ...
      ...
      [ 27  21   0]
      [ 12   7   0]
      [ 11   8   0]]]
    

    可以看出scipy.misc.imread()函数返回的是numpy.ndarray

    python课程推荐。
    在这里插入图片描述

  • 相关阅读:
    hdu 5387 Clock (模拟)
    CodeForces 300B Coach (并查集)
    hdu 3342 Legal or Not(拓扑排序)
    hdu 3853 LOOPS(概率DP)
    hdu 3076 ssworld VS DDD(概率dp)
    csu 1120 病毒(LICS 最长公共上升子序列)
    csu 1110 RMQ with Shifts (线段树单点更新)
    poj 1458 Common Subsequence(最大公共子序列)
    poj 2456 Aggressive cows (二分)
    HDU 1869 六度分离(floyd)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302765.html
Copyright © 2011-2022 走看看