精华内容
下载资源
问答
  • 今天小编就大家分享一篇python 实现将Numpy数组保存为图像,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Numpy数组保存为图像

    万次阅读 2018-03-22 22:27:58
    有一个Numpy数组类型的矩阵,如何将它作为图像写入磁盘?任何格式的图像都行(PNG,JPEG,BMP ...)。最佳解决办法可以使用scipy.misc,代码如下:import scipy.misc scipy.misc.imsave('outfile.jpg', image_array) ...

    有一个Numpy数组类型的矩阵,如何将它作为图像写入磁盘?任何格式的图像都行(PNG,JPEG,BMP ...)。

     

    一、scipy.misc

    import scipy.misc
    scipy.misc.imsave('outfile.jpg', image_array)
    

    上面的scipy版本会标准化所有图像,以便min(数据)变成黑色,max(数据)变成白色。如果数据应该是精确的灰度级或准确的RGB通道,则解决方案为:

    import scipy.misc
    scipy.misc.toimage(image_array, cmin=0.0, cmax=...).save('outfile.jpg')
    

     

    二、PIL

    给定一个numpy数组"A":

    from PIL import Image
    im = Image.fromarray(A)
    im.save("your_file.jpeg")
    

    你可以用几乎任何你想要的格式来替换"jpeg"。有关格式详见here更多细节

     

    三、纯Python

    此函数写入压缩的真彩色(每个像素4个字节)RGBA PNG。

    def write_png(buf, width, height):
        """ buf: must be bytes or a bytearray in Python3.x,
            a regular string in Python2.x.
        """
        import zlib, struct
    
        # reverse the vertical line order and add null bytes at the start
        width_byte_4 = width * 4
        raw_data = b''.join(b'\x00' + buf[span:span + width_byte_4]
                            for span in range((height - 1) * width_byte_4, -1, - width_byte_4))
    
        def png_pack(png_tag, data):
            chunk_head = png_tag + data
            return (struct.pack("!I", len(data)) +
                    chunk_head +
                    struct.pack("!I", 0xFFFFFFFF & zlib.crc32(chunk_head)))
    
        return b''.join([
            b'\x89PNG\r\n\x1a\n',
            png_pack(b'IHDR', struct.pack("!2I5B", width, height, 8, 6, 0, 0, 0)),
            png_pack(b'IDAT', zlib.compress(raw_data, 9)),
            png_pack(b'IEND', b'')])
    

    ...数据应直接写入以二进制打开的文件,如下所示:

    data = write_png(buf, 64, 64)
    with open("my_image.png", 'wb') as fd:
        fd.write(data)
    

     

    四、matplotlib-1

    import matplotlib
    
    matplotlib.image.imsave('name.png', array)
    

    适用于matplotlib 1.3.1,不确定更低的版本是否有效。文档:

    Arguments:
      *fname*:
        A string containing a path to a filename, or a Python file-like object.
        If *format* is *None* and *fname* is a string, the output
        format is deduced from the extension of the filename.
      *arr*:
        An MxN (luminance), MxNx3 (RGB) or MxNx4 (RGBA) array.
    

     

    python,image,numpy

     

    五、matplotlib-2

    import matplotlib.pyplot as plt
    plt.imshow(matrix) #Needs to be in row,col order
    plt.savefig(filename)
    

    这将保存plot(而不是图像本身)。

    python,image,numpy

     

    六、opencv

    import cv2
    import numpy as np
    
    cv2.imwrite("filename.png", np.zeros((10,10)))
    

    如果你需要做更多的处理,而不是保存,这个库比较有用。

    参考文献

    展开全文
  • python 将 Numpy 数组保存为图像 - imagio: import numpy as np import imageio if __name__ == '__main__': np_array = np.zeros((512, 512, 3), dtype=np.uint8) np_array[200:300, 150:200, :] = 255 ...

    1. 将Numpy数组保存为图像

    2. 老版本的代码:

    import scipy.misc
    scipy.misc.imsave('outfile.jpg', image_array)
    

    3. 错误信息解决:

    DeprecationWarning: `imread` is deprecated!
    `imread` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.
    Use ``imageio.imread`` instead.
      This is separate from the ipykernel package so we can avoid doing imports until
    

    4. 新版本的代码:

    import numpy as np
    import imageio
    
    
    if __name__ == '__main__':
    
        np_array = np.zeros((512, 512, 3), dtype=np.uint8)
        np_array[200:300, 150:200, :] = 255
        imageio.imwrite(r'D:/temp/outfile.jpg', np_array)
    
    展开全文
  • 如何将Numpy数组保存为图像

    万次阅读 多人点赞 2018-03-21 09:41:41
    阅读原文点我 最佳解决办法 可以使用scipy.misc,代码如下: import scipy.misc scipy.misc.imsave('outfile.jpg', image_...如果数据应该是精确的灰度级或准确的RGB通道,则解决方案: import scipy.misc...

    阅读原文点我

    最佳解决办法

    可以使用scipy.misc,代码如下:
    import scipy.misc
    scipy.misc.imsave('outfile.jpg', image_array)

    上面的scipy版本会标准化所有图像,以便min(数据)变成黑色,max(数据)变成白色。如果数据应该是精确的灰度级或准确的RGB通道,则解决方案为:

    import scipy.misc
    scipy.misc.toimage(image_array, cmin=0.0, cmax=...).save('outfile.jpg')

    第二种解决办法

    使用PIL

    给定一个numpy数组"A":

    from PIL import Image
    im = Image.fromarray(A)
    im.save("your_file.jpeg")

    第三种办法  

    纯Python(2& 3),没有第三方依赖关系的代码片段。 见原文

    第四种办法

    用matplotlib:

    import matplotlib
    
    matplotlib.image.imsave('name.png', array)

    第五种办法

    如果使用matplotlib,也可以这样做:

    import matplotlib.pyplot as plt
    plt.imshow(matrix) #Needs to be in row,col order
    plt.savefig(filename)

     

    第6种办法

    python的opencv(http://docs.opencv.org/trunk/doc/py_tutorials/py_tutorials.html)。

    import cv2
    import numpy as np
    
    cv2.imwrite("filename.png", np.zeros((10,10)))

     

     

     

    展开全文
  • numpy数组保存为图像的几种方法

    千次阅读 2020-04-25 23:01:01
    0.给定一个numpy数组——image 1.使用opencv import cv2 cv2.imwrite("1.jpg", image) 2.使用PIL from PIL import Image im = Image.fromarray(image) im.save("1.jpg") 3.使用scipy.misc import scipy.misc scipy...
    0.给定一个numpy数组——image
    1.使用opencv
    import cv2
    cv2.imwrite("1.jpg", image)
    
    2.使用PIL
    from PIL import Image
    im = Image.fromarray(image)
    im.save("1.jpg")
    
    3.使用scipy.misc
    import scipy.misc
    scipy.misc.imsave('1.jpg', image)
    

    若数据应为精确的灰度级或准确的RGB通道,则:

    import scipy.misc
    scipy.misc.toimage(image, cmin=0.0, cmax=...).save('1.jpg')
    
    4.使用matplotlib
    import matplotlib
    matplotlib.image.imsave('1.png', image)
    

    参考:Saving a Numpy array as an image
    展开全文
  • python中将Numpy数组保存为图像

    万次阅读 多人点赞 2018-05-03 12:19:53
    第一种方案可以使用scipy.misc,代码如下:import scipy.misc misc.imsave('out.jpg', image_array) ...如果数据应该是精确的灰度级或准确的RGB通道,则解决方案:import scipy.misc misc.toimage(image_array, cm...
  • 给定一个numpy数组"A": from PIL import Image im = Image.fromarray(A) im.save( "your_file.jpeg" ) 第三种办法  纯Python(2& 3),没有第三方依赖关系的代码片段。 见原文 第四种办法 用matplotlib: import...
  • import numpy as np shuzu = np.full((5, 5), 3.1) #生成一个5X5大小的矩阵,每一个值都是3.1 print(shuzu) # 创建tif文件 driver = gdal.GetDriverByName("GTiff") New_YG_dataset = driver.Create(r'F:\YG\...
  • 【Python】将Numpy数组保存为图像

    千次阅读 2018-07-12 15:05:55
    点击阅读原文
  • https://vimsky.com/article/3697.html
  • 转: ... 可以使用scipy.misc,代码如下: ...如果数据应该是精确的灰度级或准确的RGB通道,则解决方案: import scipy.misc scipy.misc.toimage(image_array, cmin=0.0, cmax=...).save('outfile.jpg')
  • import numpy as np shuzu1 = np.full((5, 5), 3.1) #生成一个5X5大小的矩阵,每一个值都是3.1 shuzu2 = np.full((5, 5), 3.2) #生成一个5X5大小的矩阵,每一个值都是3.2 shuzu3 = np.full((5, 5), 3.3) #生成一个5...
  • numpy数组精确保存为图片的方法

    千次阅读 2019-04-08 14:09:23
    发现用cv2.write、scipy.misc.imsave、scipy.misc.toimage().save()保存都有细微的偏差,最终用PIL.Image.fromarrya().save()才能精确地将值保存下来 参考链接: https://www.cnblogs.com/skyfsm/p/8276501.html...
  • array = numpy.zeros((3,3,1))numpy.savetxt("nxx", array, fmt='%s')这给了我以下错误:“预期的1D或2D数组,取而代之的是%dD数组”%X.ndim)ValueError:预期的1D或2D数组,取而代之的是3D数组参考方案如th...
  • Specifying and saving a figure with exact size in pixels # %% Demo ...import numpy # Setting w = 5 h = 5 im_np = numpy.random.rand(h, w) # Plot and save fig = plt.figure(frameon=False) fig
  • numpy数组图片互转

    2021-04-02 14:03:16
    load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名 .npy 的文件中。 savez() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二...
  • 默认情况下,数组以未压缩的原始二进制格式保存在扩展名npy的文件中,以数组a例np.save("filename.npy",a) b = np.load("filename.npy")12利用这种方法,保存文件的后缀名字一定会被置.npy2. 存取文本文件使用...
  • 图片和音乐读取都是数组 bytes 1个字节耗费八个比特位 第一位是正负号, 正方向:127 负方向:-128 float16 半精度类型,不常用,我们常用的是float32 第一个正负数 后面还有31格 再去掉8个 这八个表示科学计数法 ...
  • So I have a set of data which I am able to convert to form separate numpy arrays of R, G, B bands. Now I need to combine them to form an RGB image.I tried 'Image' to do the job but it requires 'mode' ...
  • 【python】保存Numpy数组为灰度图

    千次阅读 2020-03-16 16:31:53
    from PIL import Image #outPutImg 是npy数组 *255是因为数组中的元素非零即一 ...#"L"代表将图片转化灰度图 outputImg = outputImg.convert('L') outputImg.save('/Users/86187/Desktop/change_...
  • Python实现:一张照片,横着切成若干条,并且没有打乱,随后隔条分成了两份,然后把这两份各自拼接在一起,出现了跟两张原图一模一样的图片,将两张图竖着切成若干条,并且没有打乱,随后隔条...numpy数组的有趣玩法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,135
精华内容 4,854
关键字:

numpy数组保存为图片