广告位联系
返回顶部
分享到

PIL图像与数组之间转换的使用二十j

python 来源:互联网 作者:佚名 发布时间:2024-12-06 21:40:35 人浏览
摘要

getpixel 如果想对图像进行细致地处理,那么操作像素是必不可少的一步。在Image类中,通过getpixel可以得到图像在某个坐标位置处的像素值,示例如下 其含义是,lena图的( 15 , 15 ) (15,15)(15,15)这个

getpixel

如果想对图像进行细致地处理,那么操作像素是必不可少的一步。在Image类中,通过getpixel可以得到图像在某个坐标位置处的像素值,示例如下

其含义是,lena图的 ( 15 , 15 ) (15,15) (15,15)这个位置处的RGB值为 ( 230 , 130 , 104 ) (230, 130, 104) (230,130,104)。如果想将所有像素,输出到一个数组中,可以对像素点进行遍历

1

2

3

4

5

6

7

8

import numpy as np

 

w, h = img.size

mat = np.zeros([w,h,3])

 

for y in range(h):

    for x in range(w):

        mat[y,x,:] = img.getpixel((x,y))

putpixel

与getpixel相对偶的函数是putpixel,其功能是写入某个像素点,通过如下代码,可以将mat中的每个像素点,填充到一个新的图像中

1

2

3

4

pImg = Image.new("RGB", size=(w, h))

for y in range(h):

    for x in range(w):

        pImg.putpixel((x,y), tuple(mat[y,x,:].astype(int)))

【putpixel】的输入参数分别是像素位置和像素值。这个过程十分耗时,处理一张 512 × 512 512\times512 512×512的图像,甚至需要消耗掉1秒的时间,所以非常不建议这么使用。

快速转换

PIL和numpy都是非常著名的Python库,对彼此的数据类型自然也了然于胸,提供了便捷的转换函数,示例如下

1

2

m1 = np.asarray(img)

im1 = Image.fromarray(mat)

由此得到的m1与经过单点迭代填充的mat,内容完全相同。而经过m1转换得到的im1,图像在保存之后,也与读取得到的原图没有区别。

在这里插入图片描述


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 使用Python中wordcloud库绘制词云图的教程

    使用Python中wordcloud库绘制词云图的教程
    词云图(Word Cloud)是数据可视化中常用的一种技术,通过将文字以不同的大小、颜色和方向排列,以展示文本数据中词汇的频次和重要性。
  • Python文件批量处理操作的实现
    在日常的开发和数据处理过程中,我们可能会遇到需要对大量文件进行批量操作的场景。比如,批量重命名文件、批量移动文件、批量修改
  • python的三种等待方式及优缺点介绍
    一、调用方式 1.强制等待 调用time模块,使用time.sleep(n),强制等待n秒 2.隐式等待 implicitly_wait(n),设置隐式等待最大时间n秒,等待元素加载完
  • 利用Python爬虫精准获取淘宝商品

    利用Python爬虫精准获取淘宝商品
    在数字化时代,数据的价值日益凸显,尤其是在电子商务领域。淘宝作为中国最大的电商平台之一,拥有海量的商品数据,对于研究市场趋
  • PIL图像与数组之间转换的使用二十j

    PIL图像与数组之间转换的使用二十j
    getpixel 如果想对图像进行细致地处理,那么操作像素是必不可少的一步。在Image类中,通过getpixel可以得到图像在某个坐标位置处的像素值,
  • Python利用xmltodict实现字典和xml互相转换的代码
    xmltodict简介 概念 xmltodict是Python中用于处理XML数据的模块,它可将XML数据转换为字典,简化XML解析过程,同时保留数据结构,便于操作。 反
  • python中pip的使用方法介绍
    pip 是 Python 的默认包管理工具,随 Python 3.x 版本一同安装。它使得安装和管理 Python 包变得非常简单。本文将介绍 pip 的基本使用方法、常用
  • 基于Python制作一个全自动微信清粉小工具
    在当今社交软件中,微信是最常用的通讯工具之一。然而,随着时间的推移,我们的好友列表中可能会出现一些不再活跃的账号,也就是我
  • YOLOv8模型pytorch格式转为onnx格式的步骤介绍

    YOLOv8模型pytorch格式转为onnx格式的步骤介绍
    一、YOLOv8的Pytorch网络结构 yolov8网络从1-21层与pt文件相对应是BackBone和Neck模块,22层是Head模块。 二、转ONNX步骤 2.1 yolov8官方 1 2 3 4 5 6 7 8 9
  • Python中addict库使用Dict的类

    Python中addict库使用Dict的类
    from addict import Dict这行代码导入了 Dict 类,它来自于 addict 模块。在这个上下文中,addict 是一个 Python 库,它提供了一个名为 Dict 的类,用于
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计