利用python的Numpy及PIL第三方库实现图片的手绘效果。PIL第三方库是一个具有强大图像处理能力的第三方库。

数字图像数据可以用矩阵来表示,因此可以采用矩阵理论和矩阵算法对数字图像进行分析和处理。最典型的例子是灰度图像,如图1-2所示。灰度图像的像素数据就是一个矩阵,矩阵的行对应图像的高(单位为像素),矩阵的列对应图像的宽(单位为像素),矩阵的元素对应图像的像素,矩阵元素的值就是像素的灰度值。

由于数字图像可以表示为矩阵的形式,所以在计算机数字图像处理程序中,通常用二维数组来存放图像数据,参见图1-3。二维数组的行对应图像的高,二维数组的列对应图像的宽,二维数组的元素对应图像的像素,二维数组元素的值就是像素的灰度值。采用二维数组来存储数字图像,符合二维图像的行列特性,同时也便于程序的寻址操作,使得计算机图像编程十分方便。

根据上面的描述,我们对图像的矩阵描述有了一个初步认识。而在python中我们可以采用numpy库来创建矩阵。要实现图像的手绘效果其实只需简单的几步即可:

(1) 读取原图片

(2) 获取像素RGB值

(3) 修改像素RGB值

(4) 将修改后的像素值保存

具体的代码展示如下:

fromPIL importImage

importnumpy asnp

a=np.asarray(Image.open(r"C:\Users\ZXL\Desktop\照片\pic1163.jpg").convert('L')).astype("float")

depth=10. #预设深度为10,取值范围0-100

grad=np.gradient(a)

grad_x,grad_y=grad #提取x,y方向的梯度值

grad_x=grad_x*depth/100.

grad_y=grad_y*depth/100. #根据深度分别调整x,y方向的梯度值

A=np.sqrt(grad_x**2+grad_y**2+1.)#构造x,y轴梯度的三维归一化单位坐标系

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) #光源对x,y,z三个方向的影响程度

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)

im=Image.fromarray(b.astype("uint8"))

im.save(r"C:\Users\ZXL\Desktop\照片\picture.jpg"

效果图如下图所示:

python手绘效果图_Python实现手绘图相关推荐

  1. python手绘教学_Python实现手绘图效果实例分享

    首先我们来看看原图: 接着我们来看看效果图: 通过分析我们不难发现以下特征: 主要颜色为黑白灰 边界线条较重 相同或相近色趋于白色 略有光源效果 需要用到的库有: numpy PIL 代码实现: im ...

  2. python手绘教学_Python实现手绘功能

    手绘图确实很好看,但对于手残党的我,只能呵呵一笑,今天就用代码来实现手绘功能,把普通的图片转换为手绘图片. 代码 from PIL import Image import numpy as np a ...

  3. python手绘代码_Python实现手绘功能

    Python实现手绘功能 2 个月前 手绘图确实很好看,但对于手残党的我,只能呵呵一笑,今天就用代码来实现手绘功能,把普通的图片转换为手绘图片. 代码 from PIL import Image im ...

  4. 手绘效果图与电脑效果图制作哪个好

    手绘效果图与电脑效果图制作哪个好 手工效果图的制作 是出自于设计师的脑海,根据自己丰富的想象和艺术情感技术所创作出来的.其设计的每个细节都表达的都恰如其分,无论是从线条方面还是色彩背景方面都是电脑软件 ...

  5. 码绘VS手绘(二)动态绘图

    码绘VS手绘(二)动态绘图 一.前言 二.实验内容 (一)主题 (二)实验结果 1.码绘 最终效果 程序结构 具体函数解析 2.手绘 三.总结--编程与手绘的比较 1.工具和载体 2.技法 3.理念 ...

  6. Photoshop照片一键转换手绘效果图动作

    不管你之前有没有接触过PS照片转手绘,有了这一个动作文件,可以帮助你10几秒钟把一张图片转化成手绘效果图风格.无须复杂繁琐的操作步骤,只需要画笔在图片上轻轻一抹,点击播放动作即可制作一张完美的手绘效果 ...

  7. python画黑白线条_Python实现手绘图效果实例分享

    首先我们来看看原图: 接着我们来看看效果图: 通过分析我们不难发现以下特征: 主要颜色为黑白灰 边界线条较重 相同或相近色趋于白色 略有光源效果 需要用到的库有: numpy PIL 代码实现: im ...

  8. python手绘效果图_用Python做个海量小姐姐素描图

    素描作为一种近乎完美的表现手法有其独特的魅力,随着数字技术的发展,素描早已不再是专业绘画师的专利,今天这篇文章就来讲一讲如何使用python批量获取小姐姐素描画像.文章共分两部分: 第一部分介绍两种使 ...

  9. python手绘效果图_2020高校邦《马克笔手绘效果图》判断题答案2020高校邦《网络数据采集与Python爬虫(山东大学定制班级)》见面课测试答案...

    2020高校邦<马克笔手绘效果图>判断题答案2020高校邦<网络数据采集与Python爬虫(山东大学定制班级)>见面课测试答案 更多相关问题 工程项目竣工验收.交付使用,应达到 ...

最新文章

  1. HDU 4635 Strongly connected(缩点、最多可加边数使得仍然非强连通)
  2. java foreach 原理_一不小心就让Java开发者踩坑的failfast是个什么鬼?
  3. 【kafka】confluent_kafka重置offset
  4. jvm十三:类加载器命名空间
  5. 糖果传递 (数学题)
  6. Organization model change - product line item EC
  7. Android推送通知指南(转)
  8. nssl1167-桐人的约会【最短路】
  9. c#里面的combobox在代码中怎么根据它的text获取它的index?
  10. React ant design UI 禁用 启用 switch 开关 加弹窗确认提示 代码片段
  11. C++中strncpy函数和strncpy_s函数的使用及注意事项
  12. 软件构造第一篇博客(“可变形与不可变性”)
  13. Gocloud高恪固件CVE-2020-8949漏洞利用打开SSH(poc支持5.2最新版测试通过)
  14. 2017界面UI设计风格流行什么?(一)
  15. 5G 与 WIFI6 的对比
  16. 回忆2016:心怀梦想,奋力前行
  17. 大泡沫.一切从广场协议开始 俞天任 读后总结
  18. 7kyu Jaden Casing Strings
  19. selenium的安装和下载谷歌浏览器镜像驱动
  20. Java计算RGB数值

热门文章

  1. jenkins——凭据管理
  2. python382怎么用_手把手教你使用python自动打包 上传应用分发
  3. 2021年烟花爆竹经营单位安全管理人员考试资料及烟花爆竹经营单位安全管理人员考试试卷
  4. AI 收藏夹 Vol.001:当你的语音助手不再温顺
  5. 微信上线“密信”新功能:聊天可以加密了?
  6. phpm mysql渗透猜_使用sqlmap进行MySQL注入并渗透某服务器
  7. Vue的自定义@change事件(自己学习用途,不建议参考)
  8. ecs搭建mysql和云数据库_阿里云ECS搭建自己的关系型数据库mysql RDS主从复制
  9. 大数据面试必背基础知识
  10. ab测试工具使用详情