使用numpy处理图片——基础操作

这篇具有很好参考价值的文章主要介绍了使用numpy处理图片——基础操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

numpy是一款非常优秀的处理多维数组的Python基础包。在现实中,我们最经常接触的多维数组相关的场景就是图像处理。本系列将通过若干篇对图像处理相关的探讨,来介绍numpy的使用方法,以获得直观的体验。
本系列使用的照片使用的是RGBA色彩空间模型,即一个像素点,要通过R(Red红色)、G(Green绿色)、B(Blue蓝色)和A(Alpha通道)组成。前三种三原色比较好理解,即一个颜色可以通过红绿蓝三种颜色组成;Alpha则是代表透明度,0代表完全透明,255代表完全不透明,中间的数值则代表相应程度的半透明。
使用numpy处理图片——基础操作,numpy,numpy

使用numpy处理图片——基础操作,numpy,numpy使用numpy处理图片——基础操作,numpy,numpy
可以看到Alpha 255的图片,背景是白色的,且是不透明的;而Alpha 0背景区域是完全透明。
一张图片,我们看成是一个像素组成的二维数组;
使用numpy处理图片——基础操作,numpy,numpy
如果每个像素用RGBA表示,则演变成一个三维数组。只是之前的每个元素变成了一个长度为4的维度。

准备工作

下面是一张960*1536,背景色是白色,完全不透明的图片——example.png。后面我们将针对这张图片做相关处理。
使用numpy处理图片——基础操作,numpy,numpy
为了能读取图片,我们需要安装另外一个python包

pip3 install pillow

图片像素大小

如果翻译成numpy相关的知识,就是获取数组的大小。这儿我们要使用shape属性。

from PIL import Image
import numpy as np
img = Image.open('example.png')
data = np.array(img)
print(data.shape)

(960, 1536, 4)

可以见得我们将图片变成了一个3维数组:960表示高度,1536表示宽度,4表示深度。
使用numpy处理图片——基础操作,numpy,numpy

修改透明度

如果翻译成numpy相关的知识,就是修改数组中第三个维度(RGBA)的第四个位置(A)的值。

from PIL import Image
import numpy as np
img = Image.open('example.png')
data = np.array(img)

data[:,:,3]= 32

newImg = Image.fromarray(data)
newImg.save('alpha32.png')

上面代码将Alpha通道值改成了32,即一种半透明状态。
代码的第6行,第一个“:”表示所有的第一维度(高),第二个“:”表示所有的第二维度(宽),3表示Alpha通道所在的RGBA中的下标。
这种写法,比逐个遍历数据要方便的多。
使用numpy处理图片——基础操作,numpy,numpy

代码地址

https://github.com/f304646673/numpy-example/tree/main/basic文章来源地址https://www.toymoban.com/news/detail-784655.html

到了这里,关于使用numpy处理图片——基础操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flutter-使用extended_image操作图片的加载和状态处理

    在 Flutter 的开发过程中,经常会遇到图片的显示和加载处理,通常显示一个图片,都有很多细节需要处理,比如图片的加载、缓存、错误处理、图片的压缩、图片的格式转换等,如果每个地方都手动处理,就太麻烦了,这时候就可以使用糖果大佬的插件 extended_image,它是官方

    2024年02月21日
    浏览(34)
  • 微信小程序文件上传、下载和图片处理、文件操作API的使用

    这次按照我的理解来做这部分的笔记 首先,复习上节课所学的内容。就是网络请求api的使用  现在我有一个需求就是点击按钮实现获取后端返回的图片  先打开服务器  看一下我们要返回的图片路径  书写结构  看一下返回来的数据。是在data下的banners里。因此我们封装一下

    2024年02月04日
    浏览(44)
  • 【数据分析 - 基础入门之NumPy④】NumPy基本操作 - 一

    大家好!我是初心,本期给大家带来的是【【NumPy系列】基本操作 - 一。 作者的【 Python 数据分析】专栏正在火热更新中,如果本文对您有帮助,欢迎大家点赞 + 评论 + 收藏 ! 每日金句分享: 选择你所喜欢的,爱你所选择的。』—— 托尔斯泰「托尔斯泰 。 NumPy( Numerical Py

    2024年02月13日
    浏览(69)
  • Python Numpy入门基础(二)数组操作

    NumPy是Python中一个重要的数学运算库,它提供了了一组多维数组对象和一组用于操作这些数组的函数。以下是一些NumPy的主要特点: 多维数组对象:NumPy的核心是ndarray对象,它是一个多维数组对象,可以容纳任意数据类型。 矢量化操作:使用NumPy的函数,可以对整个数组进行

    2024年02月15日
    浏览(44)
  • Open CV 图像处理基础:(六)在Java中使用 Open CV进行图片翻转和图片旋转

    在Java中使用OpenCV进行图片翻转和旋转是一种基本的图像处理技术,广泛应用于计算机视觉、图像编辑和人工智能领域。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了许多常见的图像处理和分析功能,旨在为实时的图像处理提供高效

    2024年02月01日
    浏览(51)
  • Open CV 图像处理基础:(四)使用 Open CV 在 Java 中进行基本的图片模糊处理

    在Java中使用OpenCV进行图片模糊处理,主要可以通过以下几种方式: 均值模糊(Averaging Blur): 通过计算核窗口内所有像素的平均值来模糊图像。这种方法可以移除图像噪声,但也会使图像细节变得模糊。 这里src是原始图像,dst是模糊后的图像,new Size(10, 10)定义了核窗口的大

    2024年01月22日
    浏览(43)
  • 【Python 零基础入门】Numpy 常用函数 数组操作 & 数学运算

    Numpy (Numerical Python) 是 Python 编程语言的一个扩展程序库, 支持大量的维度数组与矩阵运算, 并提供了大量的数学函数库. Numpy 利用了多线程数组来存储和处理大型数据集, 从而提供了一个高效的方式来进行数值计算, 特别是对于矩阵预算和线性代数. np.assarray 可以将输入转换为

    2024年02月05日
    浏览(46)
  • Python中数据处理(npz、npy、csv文件;元组、列表、numpy数组的使用)

    目录 1.npz文件 2.npy文件 3.csv文件 4.列表、元组、numpy矩阵 ①列表 ②元组(不可变列表) ③Numpy数组 ③Numpy矩阵 1.npz文件 npz是python的压缩文件 ①读取文件 ② NpzFile 对象有个属性 files 可以通过它查看该压缩文件的所有文件名,通过 dataset[\\\'文件名\\\'] 来获取文件内容 ③保存为.npz文件

    2024年02月03日
    浏览(44)
  • 【数据分析 - 基础入门之NumPy②】Jupyter Notebook安装及使用

    大家好,我是向阳花花花花,本期给大家带来的是 Jupyter Notebook安装及使用。作者的 【 Python 数据分析】专栏正在火热更新中,如果本文对您有帮助,欢迎大家点赞 + 评论 + 收藏 ! 每日金句分享: 慢也好,步伐小也罢,是往前走就好。』—— 佚名「网易云音乐热评」 。 话

    2024年02月12日
    浏览(55)
  • OpenCV基础操作_图片读取和保存

    目录 1 图片读取 2 图片保存 在OpenCV中,加载图片采用imread()函数。 函数详细说明在:Reading and Writing Images and Video — OpenCV 2.4.13.7 documentation Python:   cv2. imread (filename[, flags])  函数功能: imread 功能是加载图像文件成为一个 Mat 对象。 imread支持的文件类型有: Windows bitmaps

    2023年04月19日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包