代码如下:

from PIL import Image #图像处理模块

import numpy as np

a = np.asarray(Image.open("这里是原图片的路径").convert('L')).astype('float')

#将图像以灰度图的方式打开并将数据转为float存入np中

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/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 轴的影响

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) #光源归一化

b = b.clip(0,255) #clip函数将区间外的数字剪除到区间边缘

im = Image.fromarray(b.astype('uint8')) #重构图像

im.save("这里是输出图片的路径")

检验一下效果:

from PIL import Image #图像处理模块

import numpy as np

# 将图像以灰度图的方式打开并将数据转为float存入np中

a = np.asarray(Image.open("D://Python//图片转素描//4.jpg").convert('L')).astype('float')

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/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 轴的影响

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) # 光源归一化

b = b.clip(0,255) # clip函数将区间外的数字剪除到区间边缘

im = Image.fromarray(b.astype('uint8')) # 重构图像

im.save("D://Python//图片转素描//4_2.jpg")

原图:

转换后

但是不适合那些依赖光影变换效果的图片,比如我最爱的百里守约就很糟糕

以上就是python实现图片素描效果的详细内容,更多关于python 图片素描的资料请关注我们其它相关文章!

本文标题: python实现图片素描效果

本文地址: http://www.cppcns.com/jiaoben/python/349936.html

python 素描化图像_python实现图片素描效果相关推荐

  1. python 素描化图像_任意图像转素描:Python分分钟实现

    图像转素描效果展示 看到这个标题你可能觉得,我这次终于开始标题党了.然而众所周知,我是标图党~,一般不会做标题党这种事情,既然说了分分钟实现,那就说明--代码在十行左右. 代码虽少,但是效果确实一点都 ...

  2. python批量处理图像_python批量图片处理简单示例

    本文实例讲述了python批量图片处理.分享给大家供大家参考,具体如下: #!/usr/bin/python #coding:utf-8 import os from PIL import Image ...

  3. python素描效果_python实现图片素描效果

    代码如下: from PIL import Image #图像处理模块 import numpy as np a = np.asarray(Image.open("这里是原图片的路径&quo ...

  4. python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...

    python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...

  5. python抓取图片数字_python实现图片处理和特征提取详解

    这是一张灵异事件图...开个玩笑,这就是一张普通的图片. 毫无疑问,上面的那副图画看起来像一幅电脑背景图片.这些都归功于我的妹妹,她能够将一些看上去奇怪的东西变得十分吸引眼球.然而,我们生活在数字图片 ...

  6. python读取多张图片_python读取图片的几种方式及图像宽和高的存储顺序

    python读取图片的几种方式及图像宽和高的存储顺序 1.opencv 2.imageio 3.matplotlib 4.scipy # coding:utf-8 import cv2 import ...

  7. 用python读取图像_Python读取图片属性信息的实现方法

    本文是利用Python脚本读取图片信息,有几个说明如下: 1.没有实现错误处理 2.没有读取所有信息,大概只有 GPS 信息.图片分辨率.图片像素.设备商.拍摄设备等 3.简单修改后应该能实现暴力修改 ...

  8. python 阴阳师 识别图像_Python爬取阴阳师式神全图鉴图片

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本环境配置 python 3.6 pycharm requests 目标网页 经过一些系列 ...

  9. python截取视频图像_python工具-将视频按帧截取图片(附代码)

    描述:将一个视频流按帧数截取大量的图片 用途:ai的数据集制作,得到大量的图片,之后将其打标签 更改的地方 1.default--间隔的帧数   2.input/output--输入视频的路径.存放截 ...

最新文章

  1. 【Android】3.0 第3章 百度地图及其应用--预备知识
  2. ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务
  3. 细说WCF中的会话模式
  4. 计算机组成原理4位ALU运算器设计,计算机组成原理课程设计-alu设计和4位锁存器设计.doc...
  5. epoll_create, epoll_ctl和epoll_wait select函数分析
  6. Adobe(Pr Ae)动态图形模板
  7. 防火电缆分类、标准、阻燃等级划分详细说明
  8. 将Excel表格中的数字文本格式转化为数字格式
  9. 用ipv6校园网访问gg学术
  10. 获取本地视频文件的缩略图
  11. QT实现Qt3D材质系统加载PBR材料
  12. access函数的用法
  13. 由浅入深----python+requests+unittest执行自动化接口测试
  14. 送书 | 令附生信专用简明 Python 文字和视频教程
  15. 阿里云服务器CentOS搭建
  16. 巡检过程中有哪些注意事项?智能巡检了解一下
  17. 基于AI的自然语言处理
  18. Linux 操作系统的 ECS 挂载云硬盘
  19. 网络串流_串流免费音乐的最佳网站
  20. html中精灵图的使用方法,关于CSS Sprites、CSS精灵的详细解析

热门文章

  1. 为敏感信息设置安全屏障
  2. 麦格纳软件公司绩效考核信息化管理解决方案
  3. Rocchio算法—文本分类
  4. Linux与Windows比较出的20个优势
  5. Spring自动装配Beans
  6. 微信公众平台JSSDK开发
  7. c# 中文字符(全角、半角)通用处理
  8. ORACLE 异常错误处理
  9. Oracle面试题及答案整理
  10. Python requests 抓取网页状态返回418(亲测)