Python编程如何利用Numpy和PIL库将图片转化为手绘
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,小编给大家分享一下Python编程如何利用Numpy和PIL库将图片转化为手绘,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧
千家信息网最后更新 2025年01月28日Python编程如何利用Numpy和PIL库将图片转化为手绘
小编给大家分享一下Python编程如何利用Numpy和PIL库将图片转化为手绘,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
主要采用的技术点
Python + Numpy + PIL
在正文代码开始前,大家先看看最初原图和转换手绘风图片前后对比。
当然了,我先查了手绘的三个基本特点:
图片可单通道灰度图
边缘线条较重可当成黑色,相同或相近像素值趋向白色
光源效果下,灰度变化类似于人类视觉的远近
下面开始介绍,手绘照实现步骤:
读取图片,转化为数组
因为要对图像的像素计算,可以先把图片先转化为数组。代码如下:
depth = 10. # (0-100)grad = np.gradient(a) # 取图像灰度的梯度值grad_x, grad_y = grad # 分别取横纵图像梯度值grad_x = grad_x * depth / 100.grad_y = grad_y * depth / 100.
计算 x,y,z 轴梯度值,归一化
照片对边缘区域更侧重,计算梯度是定位图片边缘部分最有效方式,用灰度变化来模拟图片远近效果,depth 表示预设深度,z 轴默认梯度为 1。
depth = 10. # (0-100)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 / Auni_y = grad_y / Auni_z = 1. / A
加入光源效果
根据光源不同的入射角度,对x,y,z 各轴上的梯度值有不同程度的影响,添加一个模拟光源,放置在斜上方,与 x , y 分别形成两个夹角,最后用正弦余弦函数计算出新的像素值。
vec_el = np.pi / 2.2 # 光源的俯视角度,弧度值vec_az = np.pi / 4. # 光源的方位角度,弧度值dx = np.cos(vec_el) * np.cos(vec_az) # 光源对 x轴的影响dy = np.cos(vec_el) * np.sin(vec_az) # 光源对 y轴的影响dz = np.sin(vec_el) # 光源对z 轴的影响b = 255 * (dx * uni_x + dy * uni_y + dz * uni_z) # 光源归一化,8 255b = b.clip(0, 255)# 对像素值低于0,高于255部分做截断处理
导出图片,并保存
im.save("man_shouhui.jpg")
用 Python将一张图片转化为手绘风格,就这么轻松搞定了!
以上是"Python编程如何利用Numpy和PIL库将图片转化为手绘"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
图片
光源
梯度
图像
灰度
像素
影响
效果
篇文章
边缘
编程
不同
代码
内容
弧度
数组
角度
远近
部分
变化
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
平顶山市网络安全平台
葫芦娃手游换服务器
互联网科技财务处理
前端上传服务器
杭州正规软件开发哪家可靠
服务器提示安全登录
国家网络安全周系列活动
乡镇网络安全治理方案
传奇世界服务器是哪个区
软件开发优劣势
服务器安全插卡
托管服务器多少钱
数据库和数据库系统的相同处
r星服务器连不上网络
服务器虚拟化的优势
两mysql数据库
关于网络技术得梦想得征文
形容软件开发团队
专业工具软件开发费用
戴尔服务器远程访问管理卡
生态环境网络安全培训
有没有可以可视化的数据库
无线车载网络技术
r430服务器远程管理
餐饮数据库代码java
公共信息网络技术
泗阳多功能网络技术批发价
抖音服务器崩溃什么意思
报表的内容是不是静态数据库
虚拟现实技术软件开发工程师