图像的变换:

原图像:

1.读入图像后,获得像素RGB值(所有RGB值取反),修改后保存为新的文件

from PIL import Image
import numpy as np
im=np.array(Image.open("D:/pytest/a.jpeg"))
print(im.shape,im.dtype)
b=[255,255,255] -im
newim=Image.fromarray(b.astype('uint8'))
newim.save("D:/pytest/a1.jpg")

2.利用convert将im变为灰度值


from PIL import Image
import numpy as np
im=np.array(Image.open("D:/pytest/a.jpeg").convert('L'))b=255 -im
newim=Image.fromarray(b.astype('uint8'))
newim.save("D:/pytest/a2.jpg")

3.对灰度值做区间变换

from PIL import Image
import numpy as np
im=np.array(Image.open("D:/pytest/a.jpeg").convert('L'))b=(100/255)*im+150
newim=Image.fromarray(b.astype('uint8'))
newim.save("D:/pytest/a3.jpg")

4.像素平方

# -*- coding: utf-8 -*-
"""
Created on Fri Jan 25 21:41:30 2019@author: Administrator
"""from PIL import Image
import numpy as np
im=np.array(Image.open("D:/pytest/a.jpeg").convert('L'))b=255*(im/255)**2
newim=Image.fromarray(b.astype('uint8'))
newim.save("D:/pytest/a4.jpg")

5. 图像的手绘效果

手绘效果的几个特征:
• 黑白灰色
• 边界线条较重
• 相同或相近色彩趋于白色
• 略有光源效果

梯度的重构:利用像素之间的梯度值和虚拟深度值对图像进行重构根据灰度变化来模拟人类视觉的远近程度

光源效果:根据灰度变化来模拟人类视觉的远近程度
• 设计一个位于图像斜上的虚拟光源
• 光源相对于图像的俯视角为Elevation,方位角为Azimuth

• 建立光源对个点梯度值的影响函数
• 运算出各点的新像

from PIL import Image
import numpy as np
a=np.asarray(Image.open('D:/pytest/a.jpeg').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.
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)
dz=np.sin(vec_el)
b=255*(dx*uni_x+dy*uni_y+dz*uni_z) #光源归一化,把梯度转化为灰度
b=b.clip(0,255)                    #避免数据越界,将生成的灰度值裁剪至0-255内
im=Image.fromarray(b.astype('uint8'))    #图像重构
im.save('D:/pytest/aHD.jpg')

图像的手绘效果(PIL的应用实例)相关推荐

  1. 利用Numpy+PIL读取图像实现手绘效果

    读取图像+简单处理 import numpy as np from PIL import Imagepath = "" #图像路径im = np.array(Image.open( ...

  2. python数据分析与展示--图像的手绘效果

    目录 一.图像的数组表示 1.图像的RGB色彩模式 2.PIL库 二.图像变换 1.image转换成array 2.array转换成image 三.图像的手绘效果 1.实例介绍  ​ 2.编程实例 一 ...

  3. Python实现图像的手绘效果

      用Python实现手绘图像的效果 1.图像的RGB色彩模式   图像一般使用RGB色彩模式,即每个像素点的颜色由红®.绿(G).蓝(B)组成.RGB三个颜色通道的变化和叠加得到各种颜色,其中: R ...

  4. Python 神仙姐姐图像手绘效果实现

    文章目录 一.图像的 RGB 色彩模式 二.Python的 PIL 库 三.图像的数组表示 四.图像的变换 五.图像的手绘效果实现 一.图像的 RGB 色彩模式 图像一般使用 RGB 色彩模式,即每个 ...

  5. Python 数据分析与展示笔记2 -- 图像手绘效果

    Python 数据分析与展示笔记2 – 图像手绘效果 Python 数据分析与展示系列笔记是笔者学习.实践Python 数据分析与展示的相关笔记 课程链接: Python 数据分析与展示 参考文档: ...

  6. Python -- 图像的手绘风格

    ** Python – 图像的手绘风格 ** 今天在mooc上了解到python可以做出手绘风格的图片,感觉很惊奇,很想知道python对于图片是如何处理的,因此上网搜了一些博主的文章,总结了一下. ...

  7. Python实现图片手绘效果

    Python实现图片手绘效果 在图像处理领域中,手绘效果是一个非常有趣的特效.在这篇文章中,我们将讨论如何使用Python和PIL库来实现图片的手绘效果. 准备工作 在开始之前,我们需要安装PIL库. ...

  8. Three.js铅笔手绘效果实现

    在这个教程中,我们将学习如何使用 Three.js 后处理创建铅笔手绘效果. 我们将完成创建自定义后处理渲染通道.在 WebGL 中实现边缘检测.将法线缓冲区重新渲染到渲染目标以及使用生成和导入的纹理 ...

  9. PS效果教程——冒充手绘效果

    PS效果教程--冒充手绘效果 先来发个原图和效果图: 图1 图2 开始拉! 1.先将原图复制一份 2.选择滤镜--风格化--查找边缘 图3 #p#副标题#e# 3.再选择滤镜--艺术效果--粗糙蜡笔, ...

  10. [原创] 人物仿手绘效果--美女篇(超详细哦)

    [转自]http://68ps.5d6d.com/thread-11541-1-4.html 大家好!第一次写教程,写的不好,但还是希望大家能够给我点鼓励! 虽然效果处理的不尽人意,然而,我还是厚着脸 ...

最新文章

  1. Cannot check for MySQL Daemon startup because of mysqladmin failure
  2. Oracle创建视图、通过视图创建表
  3. 冒泡排序算法(C语言版)
  4. 给opensuse安装文泉驿字体
  5. 六祎-简单的排版表(python)
  6. EcmaScript 2022中的新特性
  7. 如何查看IP地址是否被占用
  8. Codeforces Round #572(div2)部分题解(A~C,E)
  9. 我国新冠疫苗首批预计接种5000万人次,2月15日前完成
  10. 《C专家编程》随笔1:读者心得
  11. Sorry, you have been blocked !vultr 又被 openai 屏蔽了,只能换个 vps 了
  12. 完全手册-MATLAB使用详解:基础、开发及工程应用
  13. 视频下载工具—you-get
  14. 图的最小生成树(Prim算法、Kruskal算法)
  15. 二、计算机网络体系架构——网络工程师成长之路
  16. Ubuntu 12.04 软件管理
  17. Github 未添加密钥报错
  18. 不用PS,一键生成熊猫头表情包(二)
  19. STM32CubeMX——LED定时闪烁和输出PWM波
  20. (图解)循环队列的三种判断队空、队满操作(附带源码和插入删除操作等一些基本操作)

热门文章

  1. vscode自动快捷格式化代码_vscode格式化代码快捷键_解锁格式化的快捷键
  2. 英雄联盟服务器状态在线怎么解决,解决英雄联盟无法连接到服务器的方法 看完就明白了...
  3. 英雄联盟服务器状态在线怎么解决,LOL服务器状态查询
  4. 对PBFT算法的理解
  5. 【HTML】HTML浏览器打印自定义页眉页脚
  6. scratch 游戏html5,scratch3转换为html5
  7. 基于SSH的医药管理系统
  8. 通配符 [概述][Java]
  9. nginx的cgi模块
  10. STM8S系列Option Byte问题:AFx在STVP中显示Reserved无法配置