(numpy+image)获取手绘效果的图片

使用Python实现图像的手绘风格效果 本文介绍了一种使用Python编程语言,结合PIL(Python Imaging Library)和NumPy库,将普通灰度图像转换成具有手绘风格效果的图像的方法。通过计算图像的梯度并模拟光照效果,我们可以生成具有深浅变化的阴影,从而使图像呈现出类似手绘的质感。 阅读详情

(numpy+image)获取手绘效果的图片


最近学习数据分析的时候,老师讲到一个numpy十分有趣的内容,就是将图片修改为手绘效果的图片。废话不多说,直接上图[doge]。

在这里插入图片描述

在这里插入图片描述

原理就不说了,自己也没怎么弄明白,直接上代码,有兴趣的话直接看看视频吧。

import numpy as np
from PIL import Image

a = np.asarray(Image.open(r'C:\Users\pc\Pictures\Saved Pictures\桌面.jpg').convert(('L'))).astype('float')

depth = 10
grad = np.gradient(a)
grad_x, grad_y = grad
grad_x = grad_x*depth/100
grad_y = grad_y*depth/100

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)

A = np.sqrt(grad_x**2+grad_y**2+1.)
# 光源对x,y,z轴的影响
uni_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./A

# 光源归一化
b = 255*(dx*uni_x + dy*uni_y + dz*uni_z)
b = b.clip(0,255)

# 重构图像并保存
im = Image.fromarray(b.astype('uint8'))
im.save(r'C:\Users\pc\Desktop\03.jpg')

附上视频的地址

numpy的实例:图像的手绘效果(3) 1、图像的数组表示 PIL库 PIL,PythonImageLibrary PIL库是一个具有强大图像处理能力的第三方库 在命令行下的安装方法:pipinstallpillow fromPIL importImage Image是PIL库中代表一个图像的类(对象) 图像是一个由像素组成的二维矩阵,每个元素是一个RGB值:RGB值: (R, G, B) 2、 图像处理代码; ... 阅读详情

相关推荐

【Python】numpy库入门——项目实践:“图像的手绘效果”

上一篇文章我介绍了一些numpy库中ndarray数组类型,这篇文章就来实战一下数组的功能。 项目原理 在jpg格式的图片中,每个像素点都由RGB来决定其颜色,RGB是三个数值,共同决定了一个颜色,其中每个数值都是0-255(含)间的一个整数,比如(0,0,0)表示黑色(三种颜色都不亮),(255,0,0)就是只有RGB中的R,所以就是红色。一张1080*720像素的照片就是由那么多个点,每个点由...

北冥有鱼 2062

Pillow库和numpy库实现手绘风格和浮雕风格

代码: 代码来自北京理工大学嵩天老师mooc #e17.1HandDrawPic.py from PIL import Image import numpy as np coef_1 = 8. coef_2 = 8. coef_3 = 50. vec_el = np.pi/coef_1 # 光源的俯视角度,弧度值 #vec_el = np.pi/2.2 # 光源的俯视角度,弧度值 vec_az = np.pi/coef_2 # 光源的方位角度,弧度值 # vec_az = np.pi/4

敲代码的小风 393

python解析图像的手绘效果(numpy库与Image类的交互使用)------程序员的独特艺术

图像是有规律的二维数据,利用numpy库可以将图像转换为数组对象,那我们又知道图像也是由很多很多的像素点构成,那我们如果操作这些像素点,对其转变,是不是可以改变这个图像呢?没错,下面我分享一下如何操作。 __________________________________________________________ 如果安装numpy函数库遇到问题建议用清华镜像安装 _____________...

Blog沙漏在下雨 1219

Python PIL之ImageDraw类详解

python的ImageDraw类详解draw.line():直线的绘制draw.rectangle():矩形绘制draw.arc():(椭)圆弧的绘制draw.chord():弦的绘制draw.pieslice():圆饼图的绘制draw.ellipse():椭圆的绘制draw.polygon():绘制多边形draw.text():文字的绘制 python PIL图像处理模块中的ImageDraw类支持各种几何图形的绘制和文本的绘制,如直线、椭圆、弧、弦、多边形以及文字等。 下面直接通过示例来进行说明: #

爱犬小仙猪的博客 8228

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

叶庭云 成为自己的光 8733

ComfyUI中一个超好用的变量管理类节点-KJNodes

在AI绘图中,ComfyUI的热度开始慢慢起来一些,但是这个软件在使用的过程中,需要很多连线,仅仅一个最简单的动画生成,就需要连接这么多线条,而且有些线会飞的很远,看起来就很不美观,尤其是一些复杂工作流,连接到最后自己可能已经分不太清楚到底连接好了没有。今天在研究C站的大佬们的工作流的时候,发现一个有意思的工作流,看起来大概是这种感觉:干净整洁。他用到了KJNodes这么个节点来管理变量,git上星标也不算很多,所以我想很多朋友可能还不知道,所以这里简单介绍下用法。

聚梦小课堂 7520

Python中numpy,Image相互转换

numpy与Image数据类型互换。第二步:读取图片并转换类型。第一步:导入需要的包。

Arbicoral的博客 1288

一个开源的AI数据分析工具,与数据对话,一键生成SQL、图表、表格、报告和智能商业分析。

Wren AI是一个开源的AI智能代理,让用户能够跟数据对话,实现从文本到SQL的转换,还能生成图表、电子表格、报告以及商业智能分析。它支持多种语言,能深入挖掘数据价值,提供智能数据探索功能,通过语义索引和精心设计的界面,让用户无需写代码即可获取洞察。Wren AI采用独特的架构,包含Wren UI、Wren AI Service和Wren Engine三大核心服务,可部署在本地或云端,助力团队高效、安全地解锁数据潜力。

AI_Charlotte的博客 4494

Numpy在图像处理中的简单应用

NumPy(http://www.scipy.org/NumPy/)是非常有名的 Python 科学计算工具包,其中包含了大量有用的思想,比如数组对象(用来表示向量、矩阵、图像等)以及线性代数函数。NumPy 中的数组对象几乎贯穿用于本书的所有例子中 1 数组对象可以帮助你实现数组中重要的操作,比如矩阵乘积、转置、解方程系统、向量乘积和归一化,这为图像变形、对变化进行建模、图像分类、图像聚类等提供了基础。 PyLab 实际上包含 NumPy 的一些内容,如数组类型。这也是我们能够在 1.2 节使用数组类型的

qq_45894443的博客 1802

华为交换机链路聚合对接思科交换机链路聚合故障

2台华为交换机采用堆叠方式与思科交换机之间使用链路聚合,华为交换机与cisco交换机链路捆绑接口频繁UP/DOWN,业务中断。

网络工程师日常的博客 2116

西门子 G120 变频器报文

G120报文

mmxxoo_xxmmp的博客 8071

numpy与Image互转

参考链接: numpy与Image互转 # numpy与Image互转 from PIL import Image import numpy as np im = Image.open("bryant.jpg") im.show() print('im的类型是:',type(im)) # im的类型是: <class 'PIL.JpegImagePlugin.JpegImageFile'> imgNumPy = np.array(im) # image类转numpy print('i

敲代码的小风 5184

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 418

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

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

m0_56450064的博客 6168

c语言串口编程详解

串口: 一种异步通信接口,通常用于低速数据传输。RS-232: 最常见的串口标准,定义了电气特性、连接器和信号线。UART: 通用异步收发传输器,是实现串口通信的硬件模块。通过以上内容,你应能够理解并实现C语言在Windows和Linux平台上的串口编程。希望这本手册能帮助你在实际项目中顺利进行串口通信开发。如果有任何疑问或需要进一步的帮助,请随时提问。

jkzyx123的博客 2223

11、iOS设备逻辑数据分析全解析

本文深入解析iOS设备中的逻辑数据,涵盖图像相关数据库(Photos.sqlite和PhotosAux.sqlite)、录音文件、iPhoto照片存储结构、多媒体文件、第三方应用程序、社交网络应用(如Twitter、Skype、Facebook等)以及苹果相关应用(如Google Mobile、Bing)的数据存储结构和取证方法。此外,还介绍了文档类应用(如Pages、Numbers、Documents To Go)的文件存储结构及恢复方法。适用于iOS取证、数据挖掘和数字调查领域。

rain6的博客 226

【Numpy入门实例:图像的手绘效果】

Numpy入门实例:图像的手绘效果 在观看博客正文前,读者首先需要具备简单的Python知识和一些Numpy库的基本操作。下面请跟随笔者的脚步走进本次的实例教程——图像的手绘风格绘制!

m0_47743127的博客 5234

数据处理和分析之数据预处理:数据离散化

在某些情况下,根据业务知识或数据特性,我们可能需要自定义离散化的区间。例如,对于年龄特征,我们可能更关心儿童、青少年、成人和老年人这几个阶段,因此可以自定义这些区间。等宽离散化:将数据范围分成等宽的区间。等频离散化:将数据分成包含相同数量观测值的区间。聚类离散化:使用聚类算法(如K-means)来确定离散化区间。自定义区间离散化:根据领域知识或数据特性手动定义区间。# 自定义区间离散化示例# 假设我们根据业务理解,将年龄分为青年、中年和老年三个阶段。

2401_87715305的博客 934

如何用Python实现将照片转化为手绘图片

今天小编闲来无事,在优快云上学会了如何用Python将照片转换为手绘图片,相信还有很多的盆友不知道如何去实现,因此,小编将代码(借鉴了不少大佬的代码)分享出来,希望大家借鉴参考,如有错误,也希望大家予以指正(毕竟小编也是个小白鸭)。 先导入PIL的Image库和numpy库: from PIL import Image import numpy as np 调出图片并转换为灰度图: im1 =...

gxh790699808的博客 4437

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

利用python将图片手绘化

首先,我们在这里面会用到的库有PIL的Image与numpy库: from PIL import Image import numpy as np 然后,我们将要用的图片调出,然后将其转化为灰度图 im=Image.open("im.jpg") im=im.convert('L') im.save('灰度.jpg') 然后我们要对整个图像取其梯度,然后对图形进行重构 a=np.asarray(...

a619398297的博客 4250

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

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

python手绘效果图_Python实现手绘图

利用python的Numpy及PIL第三方库实现图片的手绘效果。PIL第三方库是一个具有强大图像处理能力的第三方库。 数字图像数据可以用矩阵来表示,因此可以采用矩阵理论和矩阵算法对数字图像进行分析和处理。最典型的例子是灰度图像,如图1-2所示。灰度图像的像素数据就是一个矩阵,矩阵的行对应图像的高(单位为像素),矩阵的列对应图像的宽(单位为像素),矩阵的元素对应图像的像素,矩阵元素的值就...

weixin_39553904的博客 277

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

教你如何几行python代码实现图片转手绘

首先,展示一下完整代码 # -*- coding: utf-8 -*- from PIL import Image import numpy as np im = Image.open('really.jpg').convert('L')#really.jpg是这里将用于转换的原图 a = np.asarray(im).astype('float') # 将图像以灰度图的方式打开并将数据转为f...

lk的博客 3118

Numpy实例 图像处理 图像的手绘效果 北理工嵩天老师python数据分析与展示 单元3随堂笔记

Numpy入门实例 图像的手绘效果 北理工嵩天老师python数据分析与展示 单元3随堂笔记 1.图像的数组表示 图像一般采用RGB色彩模式,即每个像素点的颜色由红(R),绿(G),蓝(B)组成。RGB三个颜色通道的变化和叠加得到各种颜色,其中: R红色,取值范围,0-255. G绿色,取值范围,0-255. B蓝色,取值范围,0-255. RGB形成的颜色包括了人类视力所能感知的所有颜色。 图...

supreme_1的博客 1022

python实现手绘图片效果

from PIL import Image import numpy as np #为了便于文件的导入,可以使用相对路径,将文件和程序放在同一个文件夹下 vec_el=np.pi/2.2 vec_az=np.pi/4. depth=10. im=Image.open("HIT2.jpg").convert('L') a=np.asarray(im).astype('float') grad=n...

米兰小子SHC 3837

Python图像变换及手绘效果

图像的数组表示: PIL库,Python Image Library (mac命令行下载该第三方库的命令:pip3 install pillow) from PIL import Image (图像类) 图像用ndarray的三维数组表示:高度、宽度、RBG值 图像变换: 例1:将图像变为补色保存: 通过修改每个像素的rgb的值,将每个像素的颜色改为对应的补色。 原图: 修改后的图片: 例2:照片灰度变换 convert函数:下面代码conve...

m0_45338067的博客 856

【Python】图片存取、相关灰度处理、手绘效果(PIL库)

背景介绍 资源参考于: Python数据分析与展示【北理工 嵩天】第一周实例 顺便一提: 中国大学慕课,有的课程过期了不让访问。 这个课是我之前就报名参加的,所以现在可以直接访问,有意思的是:好像别人点击我的链接也是能访问的。 当然,慕课上的“过期”课程网上有很多方法能访问,这里不做深入讨论。 慕课上的教程挺详细的,故这里不作知识介绍了。 直接上完整代码 下面的代码与其说是我写的,倒不如说是我整理...

○( ^皿^)っHiahiahia…的博客 636
上一篇: 解决Pycharm中导入docx模块中Document函数报错问题
下一篇: selenium爬取300条京东懒加载的商品信息
Dream丶Killer
Dream丶Killer 优质创作者: python技术领域 优质创作者: python技术领域
博客等级 码龄8年 7万+粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream丶Killer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值