Python 实现Image和Ndarray互相转换

 更新时间:2020年02月19日 10:18:04   作者:GZHermit  
今天小编就为大家分享一篇Python 实现Image和Ndarray互相转换,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

如下所示:

import numpy as np
from PIL import Image

img = Image.open(filepath)
img_convert_ndarray = np.array(img)
ndarray_convert_img= Image.fromarray(img_convert_ndarray )


# np.array(object) 这个函数很强大啊,看源码里面给的注释
# object : array_like
#      An array, any object exposing the array interface, an object whose
#      __array__ method returns an array, or any (nested) sequence.

而keras里面也有api来做这样的转换

from keras.preprocessing.image import img_to_array, array_to_img

然而查看源码的时候,其实会发现这两个函数仍然还是用同样的方式实现

img_to_array() 是使用np.asarray(),而array_to_img是使用Image.fromarray()

多说一句,np.array()是创建一个ndarray,而np.asarray(object)是将一个object转换成ndarray,但是

np.asarray(a):
  return np.array(a,copy=False)

# 而np.array()里copy默认为True,那这有什么区别呢?
import numpy as np

  a = np.array([1, 2])
  b = np.asarray(a)
  c = np.asarray(a)
  print(type(b), type(c), b is c) # True
  e = np.array(a)
  f = np.array(a)
  print(type(e), type(f), e is f) # False

  a = [1, 2]
  b = np.asarray(a)
  c = np.asarray(a)
  print(type(b), type(c), b is c) # False
  e = np.array(a)
  f = np.array(a)
  print(type(e), type(f), e is f) # False

以上这篇Python 实现Image和Ndarray互相转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python进程池和线程池的区别

    python进程池和线程池的区别

    本文主要介绍了python进程池和线程池的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • Python 删除List元素的三种方法remove、pop、del

    Python 删除List元素的三种方法remove、pop、del

    这篇文章主要介绍了Python 删除List元素的三种方法remove、pop、del,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python IDLE清空窗口的实例

    Python IDLE清空窗口的实例

    今天小编就为大家分享一篇Python IDLE清空窗口的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python中的 zip函数详解及用法举例

    python中的 zip函数详解及用法举例

    zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。这篇文章主要介绍了python中的 zip函数详解及用法举例,需要的朋友可以参考下
    2020-02-02
  • 利用Python编写个有趣的记仇本

    利用Python编写个有趣的记仇本

    这篇文章主要为大家介绍了一个有趣的小案例——利用Python编写个有趣的记仇本,文中的示例代码讲解详细,感兴趣的小伙伴可以尝试一下
    2023-04-04
  • Python3 使用pip安装git并获取Yahoo金融数据的操作

    Python3 使用pip安装git并获取Yahoo金融数据的操作

    这篇文章主要介绍了Python3 使用pip安装git并获取Yahoo金融数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 使用pygame写一个古诗词填空通关游戏

    使用pygame写一个古诗词填空通关游戏

    这篇文章主要介绍了使用pygame写一个古诗词填空通关游戏,之前写的诗词填空的游戏支持python2,现在对程序进行了修改,兼容支持python2和python3,需要的朋友可以参考下
    2019-12-12
  • Python实现希尔伯特变换(Hilbert transform)的示例代码

    Python实现希尔伯特变换(Hilbert transform)的示例代码

    希尔伯特变换(Hilbert transform)是一个对函数产生定义域相同的函数的线性算子,而且希尔伯特变换在信号处理中很重要,所以本文和大家分享了Python实现希尔伯特变换的代码,需要的可以参考一下
    2023-04-04
  • 用python处理MS Word的实例讲解

    用python处理MS Word的实例讲解

    今天小编就为大家分享一篇用python处理MS Word的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 在Python中利用Pandas库处理大数据的简单介绍

    在Python中利用Pandas库处理大数据的简单介绍

    这篇文章简单介绍了在Python中利用Pandas处理大数据的过程,Pandas库的使用能够很好地展现数据结构,是近来Python项目中经常被使用使用的热门技术,需要的朋友可以参考下
    2015-04-04

最新评论