图像的数组表示和变换

图像的数组表示 图像的RGB色彩模式 图像一般使用RGB色彩模式,即每个像素点的颜色由红(R),绿(G),蓝(B)组成。 RGB三个颜色通道的变化和叠加得到各种颜色,三个色各自的取值范围是0-255。 RGB形成的颜色包括了人类视力所能感知的所有颜色。 PIL库 PIL:Python Image Library。一个具有强大图像处理能力的第三方库,在命令行下的安装方法:pip install pillow。如果安装了Anaconda,就包含了这个库,不用再安装。 from PIL import Image Image是PI 阅读详情

本文的主要内容是基于中国大学mooc(慕课)中的“Python数据分析与可视化”课程进行整理和总结。

图像的数组表示

图像一般采用RGB色彩模式,图像中的每一个像素点,由红色,绿色和蓝色组成,这三种颜色形成三个颜色通道,每个通道之间进行变化和叠加之后形成各种颜色,其中R,G,B三个颜色通道取值范围均为0-255 ,叠加起来的色彩空间为256^3,RGB形成的颜色包括了人类视力所能感知的所有颜色。所以在计算机的使用中,一般的图像均使用RGB色彩。
在计算机中,图像是一个由像素组成的矩阵,每个元素是一个RGB值,我们可以借助python中的PIL表示图像,使用numpy中的矩阵表示图像中的每一个元素。
在这里插入图片描述

from PIL import Image
import numpy as np
im = np.array(Image.open("C:/Users/ABC/introduction to ML with python/AI.jpg"))
print(im.shape,im.dtype)
(401, 800, 3) uint8

可以看到一个图像最终是由三维数据表示,维度分别是高度,宽度和像素RGB值,在第三维度上有三个元素,RGB分别由一个uint8类型表示(uint8取值范围为0-255)。

图像的数组变换

图像的变换:图像可以表示维数组,数组可以运算,经过运算后的数组,可以改变图像的形状,对图像进行变换。
变换步骤:
读入图像,变成数组,形成像素的RGB值的数组表示,修改之后保存成新的图像文件,完成图像的变换。
在这里插入图片描述

from PIL import Image
import numpy as np
im = np.array(Image.open("C:/Users/ABC/introduction to ML with python/AI.jpg"))
print(im.shape,im.dtype)
(401, 800, 3) uint8
complementary = [255,255,255] - im # 计算图片的每一个像素的补值
new_im = Image.fromarray(complementary.astype('uint8'))
new_im.save("C:/Users/ABC/introduction to ML with python/newAI.jpg")

在这里插入图片描述
在这里插入图片描述
在进行如下图像变换。

a = np.array(Image.open("C:/Users/ABC/introduction to ML with python/AI.jpg").convert('L'))#将彩色图片变成灰度图片,变成二维数组
print(a.shape,a.dtype)
(401, 800) uint8
b = 255 - a
new_im = Image.fromarray(b.astype('uint8'))
new_im.save("C:/Users/ABC/introduction to ML with python/b.jpg")

得到如下结果
在这里插入图片描述

c = 100 / 255 * a + 150
new_im = Image.fromarray(c.astype('uint8'))
new_im.save("C:/Users/ABC/introduction to ML with python/c.jpg")

在这里插入图片描述

d = 255 * (a / 255) ** 2
new_im = Image.fromarray(d.astype('uint8'))
new_im.save("C:/Users/ABC/introduction to ML with python/d.jpg")

在这里插入图片描述

图像的手绘效果

手绘风格图片具有以下特征。

  • 黑白灰色
  • 边界线条较重
  • 相同或相近色彩趋于白色
  • 略有光源效果
    事实上,手绘风格是在图像进行灰度化的基础上,由立体效果和明暗效果叠加而成,灰度实际上就代表了图像的明暗变化,而梯度值表示的是灰度的变化率,所以可以通过调整像素的梯度值来间接改变图片的明暗程度,立体效果通过虚拟深度值来实现。
a = np.array(Image.open("C:/Users/ABC/introduction to ML with python/AI.jpg").convert('L'))#将彩色图片变成灰度图片,变成二维数组
depth = 10.
grad = np.gradient(a)
grad_x,grad_y = grad
grad_x = grad_x * depth / 100
grad_y = grad_y * depth / 100
A = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1.)
uni_x = grad_x / A
uni_y = grad_y / A
uni_z = 1. / A

vec_el = np.pi / 2.2
vec_az = np.pi / 4.
dx = np.cos(vec_el) * np.cos(vec_az)
dy = np.cos(vec_el) * np.sin(vec_az)
dz = np.sin(vec_el)

b = 255*(dx*uni_x + dy*uni_y+dz*uni_z)
b = b.clip(0,255)

new_im = Image.fromarray(b.astype('uint8'))
new_im.save("C:/Users/ABC/introduction to ML with python/e.jpg")

在这里插入图片描述

python 图像处理基本操作 PIL库对图像的基本操作 PIL网上有很多介绍,这里不再讲解。直接操作,读取一张图片,将其转换为灰度图像,并打印出来。 阅读详情

相关推荐

Python中用numpy进行图片处理

其实在Python中,我们也可以用numpy进行图片处理,今天一起来学习下吧。 1.图像的数组表示: from PIL import Image from pylab import * from numpy import * im = array(Image.open('E:\Python\meinv.jpg')) print(im.shape,im.dtype) im = array(Image.open('E:\Python\meinv.jpg').convert('L'),'f') print(i.

zihong522的博客 4086

图像数组表示

图像数组表示 Numpy:Python科学计算工具包,其中包含了大量有用的思想,比如数组对象(用来表示向量、矩阵、图像等)以及线性代数函数。数组对象可以帮助实现数组中的重要操作,比如矩阵乘积、转置、解方程系统、向量乘积和归一化,这为图像变形、对变换进行建模、图像分类、图像聚类等提供了基础。 文章目录图像数组表示图像数组表示访问数组中的元素灰度变换图像缩放直方图均衡化 图像数组表示 载入图象时,调用array()方法将图像转换成Numpy的数组对象,数组对象是多维的,可以用来表示向量、矩阵和图像。数组中

qq_47537678的博客 1530

Python 图像数组变换及手绘效果实现

# 用到的第三方库 from PIL import Image import numpy as np 1. 图像的数组表示 图像是一个由像素组成的二维矩阵,每一个元素是一个RGB值。 from PIL import Image import numpy as np im = np.array(Image.open(r'D:\test\001.jpg')) # 打开一个图片 生成数组对象 print(im.shape, im.dtype) # 输出结果 # (854, 960, 3) uint8

叶庭云 成为自己的光 8735

图片与数组间的相互转化

图片与数组间的相互转化 在使用room保存图片时,需要转化为数组类型 记录相互转换代码 /** * bitmap转数组 * @param bm * @return */ public static byte[] Bitmap2Bytes(Bitmap bm) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.Compre

weixin_46367639的博客 585

3、使用Python和OpenCV进行图像处理

本文详细介绍了使用Python和OpenCV进行图像处理的基础知识和技术,涵盖了图像的NumPy数组表示、环境配置、图像加载与显示、像素操作、图形绘制、图像变换(如缩放和旋转)、算术运算、图像合并与通道分离、降噪、轮廓检测、形态学变换以及模板匹配等内容。通过代码示例和解释,帮助读者掌握计算机视觉中的常见图像处理技术,为更复杂的任务打下基础。

dell8的博客 70

数组图像处理

数字图像处理课程的辅助资料,跟着练习可以熟悉Matlab处理图像的技巧

计算机视觉————理解彩色图片

一个灰度图片被运算,计算机将其看成是 一个二维数组。彩色图片(RGB)则可以看成是三个二维数组。 RGB image,可以看成如下三个维度合在一起。 每个维度可以看成是一个二维数组 整个彩色图片既可以看成是三个二维数组合在一起。计算时被计算机理解 对于多维数组如何表示,可以参考 ...

JACKSONMHLK的博客 3430

微信DAT图片恢复全攻略:从文件定位到批量解密(附最新路径变化)

本文提供了一份详尽的微信DAT图片恢复指南,涵盖新旧版本文件路径变化解析、DAT文件定位方法以及批量解密操作步骤。针对微信图片加密存储为DAT格式的痛点,文章介绍了高效易用的图形化解密工具,帮助用户将加密文件快速还原为JPG、PNG等可查看格式,并强调了数据安全与隐私保护的重要性。

p4q5r6s7t的博客 744

实例:图像的数组表示

RGB三个颜色通道的变化和叠加得到各种颜色,取值都为0-255。RGB形成的颜色包括了人类视力所能感知的所有颜色。PIL库是一个具有强大图像处理能力的第三方库。图像一般使用RGB色彩模式,即每个像素点的颜色由红(R)、绿(G)、蓝(B)组成。图像是一个由像素组成的二维矩阵,每个元素是一个RGB值。图像是一个三维数组,维度分别是高度、宽度和像素RGB值。读入图像后,获得像素RGB值,修改后保存为新的文件。Image是PIL库中代表一个图像的类(对象)

qq_45742413的博客 305

Redis+QMT实战:如何用Stream模式实现聚宽策略的毫秒级跟单(附完整代码)

本文详细介绍了如何利用Redis Stream模式构建一个低延迟、高可靠的量化交易信号中继系统,实现从聚宽策略到本地QMT的毫秒级跟单。通过对比传统方案,解析了Redis Stream在消息持久化、消费组和显式确认方面的核心优势,并提供了完整的架构设计思路与核心代码实现,帮助量化开发者解决云端策略信号稳定传递至本地实盘的难题。

weixin_29280657的博客 477

一篇文章带你搞定数学建模里的主成分分析(05年水质问题示例应用讲解含代码)

文章目录一、题目分析二、原理公式三、MATLAB实现某一地区的主成分分析四、MATLAB 实现所有地区28个月的综合分析五、注意 一、题目分析 对长江近两年多的水质情况做出定量的综合评价,并分析各地区水质的污染状况 考虑到各指标之间可能存在一定的相关性,选用主成分分析法对长江流域主要城市水质检测报告进行分析,选取主成分,并把主成分得分按照方差贡献率加权求和,得到每个地区的污染综合评价指数,进而可以计算每个月长江流域的污染综合评价指数,对平均综合评价指数进行排序 二、原理公式 根据主成分分析的方法,分析长江沿

南淮北安的博客 2625

图像的数组、张量、维度表示

1.图像的数组表示 图像的RGB色彩模式 RGB三个颜色通道的变化和叠加得到各种颜色,其中各通道取值范围: R 0~255 G 0~255 B 0~255 白色 255 255 255 黑色 0 0 0 RGB形成的颜色包括了人类视力所能感知的所有颜色。 常用RGB颜色表:http://jsxzjh.bokee.com/3744988.html PIL库 PIL: Python Image Lib...

gjl的博客 2万+

nuScenes数据集详细介绍

nuScenes网上介绍资料较多,但是大部分仅仅是对官网的翻译,缺乏各个文件的内在联系介绍。例如,nuScenes激光雷达的数据格式,点云包含哪几种属性。再比如,sample文件夹和sweeps文件夹下的文件关系,以及是如何在相关json文件中体现的。本文将详细介绍nuScenes数据集的各个部分。

叶子的博客 1万+

Numpy简易教程——图像的数组表示

Numpy简易教程——图像的数组表示 文章目录Numpy简易教程——图像的数组表示一.图像的表示模式二.PIL库的使用1.PIL库简介与下载,导入2.图像的数组表示3.图像的变换下一篇:Matplotlib入门教程 一.图像的表示模式 图像一般采用RGB三通道色彩模式,每个像素点由红(R ),绿(G),蓝(B)三色组成。 取值范围为: R:0-255 G:0-255 B:0-255 三者叠加就可获...

qq_44932835的博客 2158

wireshark提取视频数据之RTP包中提取H264和H265

本文主要描述从wireshark包数据中提取出H264和H265裸流数据方法,裸流通过RTP封包方式发送,从抓包中直接提取视频流数据,进而进行流媒体问题定位

技术控的笔记 17万+

STM32入门教程:水位传感器应用

这是一个简单的STM32水位检测系统的入门教程。希望通过学习本教程,您能对STM32微控制器的基本应用有更深入的了解,并能成功构建一个水位检测系统。如果您需要更详细的代码实例和教程,请参考相关的STM32开发手册和应用笔记。STM32是一款功能丰富且广泛应用于嵌入式系统的微控制器系列。在本教程中,我们将介绍如何使用STM32微控制器和水位传感器构建一个水位检测系统。

wx_linying1029的博客 533

NumPy处理图像:色彩取反、图片变灰、图像手绘

教程:Python数据分析与展示_北京理工大学 目录图像的数组表示图像的变换“图像的手绘效果”实例分析 图像的数组表示 图像一般使用RGB色彩模式,即每个像素点的颜色由红( R)、绿(G)、蓝(B)组成。这三种颜色形成三种颜色通道,RGB三个颜色通道的变化和叠加得到各种颜色,其中R为红色,取值范围为0-255;G为绿色,取值范围为0-255;B为蓝色,取值范围为0-255。 RGB形成的颜色包括了人类视力所能感知的所有颜色,因此在计算机的使用中,一般的图像都采用RGB色彩。 Python中提供了一个处理图

m0_56450064的博客 6172

【学术情报智库】目录学的数字化蜕变:从古籍整理到AI知识图谱的跨越

我们既是浩瀚知识的守望者,也是数字智识的开拓者。目录学数字化不是技术替代传统,而是融合创新,让学术的系统性与多样性在新媒介下焕发新的生命。以AI为桥,既要智能链接,也要人文关照——这是对自我文明的深情回应,也是新知时代的庄严约定。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1421

python 图像处理基本操作_python图像的图像区间变换将图像进行像素平方处理。

1、读取图片PIL网上有很多介绍,这里不再讲解。直接操作,读取一张图片,将其转换为灰度图像,并打印出来。输出如下所示:2、转换图片格式输出结果如下所示:3、输出文件夹中所有图片的文件名列表输出为文件名列表。

2401_87205222的博客 330

QMK键盘固件开发零基础教程(2025全新重制版)

《QMK键盘固件开发零基础教程(2025全新重制版)》是一套专为键盘爱好者和开发者设计的全面教程,旨在帮助用户从零基础快速掌握最新的QMK固件开发技术。教程基于2025年最新的QMK版本(0.19.8+),解决了旧版教程中的诸多问题,如概念不清、步骤缺失和代码过时等。新版教程提供了详细的图解、完整的项目源码以及从环境配置到高级功能开发的全流程指导。此外,教程还涵盖了2024年QMK生态的重大变革,包括键码系统的重构、编译工具链的更新以及Config文件格式的改变等。付费版教程额外提供独家内容,如新特性解析、

Despacito0o的博客 1121

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数据分析与展示——图像手绘效果实现

NumPy库入门 NumPy数据存取和函数 实例:图像的数组表示 图像的RGB色彩模式 图像一般使用RGB色彩模式,即每个像素点的颜色由红(R)、绿(G)、蓝(B)组成。 RGB三个颜色通道的变化和叠加得到各种颜色,取值都为0-255。RGB形成的颜色包括了人类视力所能感知的所有颜色。 PIL(Python Image Library)库 PIL库是一个具有强大图像处理能力...

ance1038的博客 297

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【opencv-python】霍夫变换检测直线原理(累加器法)

直线可以表达成y=kx+by=kx+by=kx+b的形式,这是用斜率和截距表达出来的。也可以用“点法式”来表示,

hunter206的博客 2759

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python图像处理较为全面

第 1 章 基本的图像操作和处理本章讲解操作和处理图像的基础知识,将通过大量示例介绍处理图像所需的 Python 工具包,并介绍用于读取图像、图像转换和缩放、计算导数、画图和保存结果等的基本工具。这些工具的使用将贯穿本书的剩余章节。1.1 PIL:Python图像处理类库PIL(Python Imaging Library Python,图像处理类库)提供了通用的图像处理功能,以及大量有用的基本图...

白头码客 4万+

numpy___数组/图像形状改变(transpose和reshape详解)

numpy 与图像数组的形状与形状改变,shape、transpose详解

qq_41768644的博客 359

数字图像处理_学习笔记(一)

线性变换”+“平移”1.变换前是直线的,变换后依然是直线2.直线比例保持不变。

Saxoplanet的博客 140

计算机视觉 第一章基本的图像操作和处理

图像的直方图用来表征该图像像素的分布情况,用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目。这段代码首先读取并显示图像,然后在图像上绘制指定的点和线段,并在图形窗口中添加标题,最终,图形窗口展示了图像及其上的标记和线条。上述代码的返回值pil_im是一个PIL图像对象,convert()用于实现图像颜色的转换,转换成灰度图像,则用convert('L')表示。每行的第一个元组表示图像数组的大小(行、列、颜色通道),紧接着的字符串表 示数组元素的数据类型。

qq_53034510的博客 2315
上一篇: 梯度提升回归树(GBDT)
下一篇: plt.plot()
June �
博客等级 码龄8年 10粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值