python数据分析与展示--图像的手绘效果
目录
一.图像的数组表示
1.图像的RGB色彩模式
2.PIL库
二.图像变换
1.image转换成array
2.array转换成image
三.图像的手绘效果
1.实例介绍
2.编程实例
一.图像的数组表示
1.图像的RGB色彩模式
RGB三个颜色通道的变化和叠加得到各种颜色,且包括了人类视力所能感受到的所有颜色,其中:
·R 红色,取值范围0~255
·G 绿色,取值范围0~255
·B 蓝色,取值范围0~255
2.PIL库
PIL(Python Image Library)库是一个具有强大图像处理能力的第三方库
Image是PIL库中代表一个图像的类
导入方式:
from PIL import Image
图像的数组表示代码实例:
from PIL import Image
import numpy as npim=np.array(Image.open("C:/Users/myun/Pictures/不知火舞.jpg"))
print(im.shape,im.dtype)'''(251, 180, 3) uint8'''
图像是一个维数组,维度分别是高度,宽度和像素RGB值
二.图像变换
思路:读取图像后,获取像素RGB值,修改后保存为新文件
1.image转换成array
im=np.asarray(image)
代码:
from PIL import Image
import numpy as npim=np.asarray(Image.open("C:/Users/myun/Pictures/bl.jpg"))
print(im.shape,im.dtype)
'''(400, 600,3) uint8'''
2.array转换成image
Image.fromarray(np.uint8(img))
图像变换代码实例:
from PIL import Image
import numpy as npim=np.array(Image.open("C:/Users/myun/Pictures/bl.jpg"))
print(im.shape,im.dtype)
c=[255,255,255]-im
b=Image.fromarray(c.astype('uint8'))
b.save("C:/Users/myun/Pictures/bl2.jpg")
'''(400, 600,3) uint8'''
效果:
couvert()是图像实例对象的一个方法,接受一个mode参数,用以指定一种色彩模式
·1:1位像素,黑白,每个字节存储一个像素
·L:8位像素,黑白
·P:8位像素,使用调色板映射到任何其他模式
·RGB:3x8位像素,真色彩
·RGBA:4x8位像素,带透明度掩模的真色彩
·CMYK:4x8位像素,分色
·YCbCr:3x8位像素,彩色视频格式
·l:32位有符号整数像素
·F:32位浮点数像素
from PIL import Image
import numpy as npim=np.array(Image.open("C:/Users/myun/Pictures/bl.jpg").convert('L'))
print(im.shape,im.dtype)
c=255-im
b=Image.fromarray(c.astype('uint8'))
b.save("C:/Users/myun/Pictures/bl1.jpg")
'''(400, 600) uint8'''
效果:
变成:
区间变换:
from PIL import Image
import numpy as npa=np.asarray(Image.open("C:/Users/myun/Pictures/bl.jpg").convert('L'))
b=(100/255)*a+150 #区间变换
im=Image.fromarray(b.astype('uint8'))
im.save("C:/Users/myun/Pictures/b3.jpg")
效果:
像素平方:
from PIL import Image
import numpy as npa=np.asarray(Image.open("C:/Users/myun/Pictures/bl.jpg").convert('L'))
b=255*(a/255)**2 #像素平方
im=Image.fromarray(b.astype('uint8'))
im.save("C:/Users/myun/Pictures/b4.jpg")
效果:
三.图像的手绘效果
1.实例介绍
手绘图片效果代码:
from PIL import Image
import numpy as npa=np.asarray(Image.open("C:/Users/myun/Pictures/bl.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)
b=255*(dx*uni_x+dy*uni_y+dz*uni_z) #光源归一化
b=b.clip(0,255)
im=Image.fromarray(b.astype('uint8'))
im.save("C:/Users/myun/Pictures/bl4.jpg")
原图:
手绘图:
2.编程实例
python数据分析与展示--图像的手绘效果相关推荐
- 利用Numpy+PIL读取图像实现手绘效果
读取图像+简单处理 import numpy as np from PIL import Imagepath = "" #图像路径im = np.array(Image.open( ...
- Python实现图像的手绘效果
用Python实现手绘图像的效果 1.图像的RGB色彩模式 图像一般使用RGB色彩模式,即每个像素点的颜色由红®.绿(G).蓝(B)组成.RGB三个颜色通道的变化和叠加得到各种颜色,其中: R ...
- Python 神仙姐姐图像手绘效果实现
文章目录 一.图像的 RGB 色彩模式 二.Python的 PIL 库 三.图像的数组表示 四.图像的变换 五.图像的手绘效果实现 一.图像的 RGB 色彩模式 图像一般使用 RGB 色彩模式,即每个 ...
- python数据分析及展示(一)
一.IDE选择 Anaconda软件:开源免费,https://www.anaconda.com下载,根据系统进行安装.由于下载速度慢,可以去清华大学开源软件镜像站下载. Spyder软件设置:Too ...
- Python 数据分析与展示笔记2 -- 图像手绘效果
Python 数据分析与展示笔记2 – 图像手绘效果 Python 数据分析与展示系列笔记是笔者学习.实践Python 数据分析与展示的相关笔记 课程链接: Python 数据分析与展示 参考文档: ...
- Python -- 图像的手绘风格
** Python – 图像的手绘风格 ** 今天在mooc上了解到python可以做出手绘风格的图片,感觉很惊奇,很想知道python对于图片是如何处理的,因此上网搜了一些博主的文章,总结了一下. ...
- Python数据分析之展示-matplotlib2
目录 Python数据分析之展示-matplotlib2 双轴图的画法 5.根据电影时长和电影评分绘制散点图 marker属性 6.绘制各个地区的评分箱型图 美国电影评分的箱线图 多组数据箱线图 通过 ...
- Python 数据分析与展示笔记3 -- Matplotlib 库基础
Python 数据分析与展示笔记3 – Matplotlib 库基础 Python 数据分析与展示系列笔记是笔者学习.实践Python 数据分析与展示的相关笔记 课程链接: Python 数据分析与展 ...
- python绘制直方图的函数_(六)pyplot基础图表函数(学习笔记)|python数据分析与展示...
1.pyplot基础图表函数概述 2.pyplot图饼的绘制 3.pyplot直方图的绘制 4.pyplot极坐标图的绘制 5.pyplot散点图的绘制 6.单元小结 [网页链接[Python数据分析 ...
最新文章
- python爬虫下载-python爬虫之下载文件的方式总结以及程序实例
- spoj DPRSDCDR - Depressed Coder
- ios找不到信任证书_ios信任苹果企业级应用
- java 调优参数 newRatio, survivorRatio
- 运算符 优先级 结合性
- init,service和systemctl的区别
- 数据库流行度8月排行榜:Oracle 飙升 和 PostgreSQL 绝尘领跑第二梯队
- day4.编程语言简介
- 接口测试工具-Apipost变量的定义和使用
- mongodb自定义字段_mongodb为集合新增字段、删除字段、修改字段(转)
- 一本经典的程序员必看书籍————人月神话
- 小米8成功刷入Win11ARM64完整版系统
- 关于es6 async函数中reject状态的promise处理
- java 物体移动不了总结_java9迁移注意问题总结
- HIT2020春软件构造lab1
- 【Python学习】函数
- 腾讯AI开放平台使用尝试:代理后的文本翻译API使用方式
- pandas中的窗口对象(窗口函数)
- Mysql基于GTID复制模式-运维小结 (完整篇)
- Sentinel-2A数据处理
热门文章
- mysql实现自增字符串_Mysql实现字符串主键自增示例教程-Go语言中文社区
- iOS开发证书/发布证书不受信任
- 中国智能手机市场大幅衰退,仅华为vivo取得增长
- 从零开始使用ESP8266 + Blinker 实现小爱同学可控可读取状态的多路插座
- Win10系统重装过程(一键装机)
- listview下拉刷新上拉加载扩展(三)-仿最新版美团外卖
- 智慧工地给工地装上“最强大脑”
- 桌面窗口管理器dwm.exe内存过高,intel核显内存泄漏问题(附核显升级链接)
- 跟小静读CLR via C#(18)——Enum
- 开篇的个人感想和想法