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数据类型详解(一)字符串

    简单的说字符串String就是使用引号定义的一组可以包含数字,字母,符号(非特殊系统符号)的集合。今天我们就来详细探讨下Python数据类型中的字符串
    2016-05-05
  • python中decimal模块的用法

    python中decimal模块的用法

    本文主要介绍了python中decimal模块的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • python Dataframe字符串合并的操作方法

    python Dataframe字符串合并的操作方法

    Dataframe的字符串合并包括2种场景,1.合并df中其中几列字符串;2.将df中的字符串与外部字符串合并,本文主要介绍在Python下对Dataframe进行字符串合并操作的方法,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • python用WxPython库实现无边框窗体和透明窗体实现方法详解

    python用WxPython库实现无边框窗体和透明窗体实现方法详解

    这篇文章主要介绍了python用WxPython库实现无边框窗体和透明窗体实现方法详解,需要的朋友可以参考下
    2020-02-02
  • 使用Python可设置抽奖者权重的抽奖脚本代码

    使用Python可设置抽奖者权重的抽奖脚本代码

    这篇文章主要介绍了Python可设置抽奖者权重的抽奖脚本,抽奖系统包含可给不同抽奖者设置不同的权重,先从价值高的奖品开始抽,已经中奖的人,不再参与后续的抽奖,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解

    对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解

    今天小编就为大家分享一篇对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 详解如何使用Python处理INI、YAML和JSON配置文件

    详解如何使用Python处理INI、YAML和JSON配置文件

    在软件开发中,配置文件是存储程序配置信息的常见方式,INI、YAML和JSON是常用的配置文件格式,各自有着特定的结构和用途,Python拥有丰富的库和模块,本文将重点探讨如何使用Python处理这三种格式的配置文件,需要的朋友可以参考下
    2023-12-12
  • 浅谈anaconda python 版本对应关系

    浅谈anaconda python 版本对应关系

    这篇文章主要介绍了浅谈anaconda python 版本对应关系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 基于Python socket实现简易网络聊天室

    基于Python socket实现简易网络聊天室

    本文主要介绍了基于Python socket实现简易网络聊天室,本文将通过pyqt5作为桌面应用框架,socket作为网络编程的框架,从而实现包括客户端和服务端的网络聊天室的GUI应用,需要的可以参考一下
    2022-07-07
  • 详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)

    详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)

    这篇文章主要介绍了详解Django项目中模板标签及模板的继承与引用【网站中快速布置广告】,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03

最新评论