目录

一.图像的数组表示

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数据分析与展示--图像的手绘效果相关推荐

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

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

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

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

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

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

  4. python数据分析及展示(一)

    一.IDE选择 Anaconda软件:开源免费,https://www.anaconda.com下载,根据系统进行安装.由于下载速度慢,可以去清华大学开源软件镜像站下载. Spyder软件设置:Too ...

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

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

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

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

  7. Python数据分析之展示-matplotlib2

    目录 Python数据分析之展示-matplotlib2 双轴图的画法 5.根据电影时长和电影评分绘制散点图 marker属性 6.绘制各个地区的评分箱型图 美国电影评分的箱线图 多组数据箱线图 通过 ...

  8. Python 数据分析与展示笔记3 -- Matplotlib 库基础

    Python 数据分析与展示笔记3 – Matplotlib 库基础 Python 数据分析与展示系列笔记是笔者学习.实践Python 数据分析与展示的相关笔记 课程链接: Python 数据分析与展 ...

  9. python绘制直方图的函数_(六)pyplot基础图表函数(学习笔记)|python数据分析与展示...

    1.pyplot基础图表函数概述 2.pyplot图饼的绘制 3.pyplot直方图的绘制 4.pyplot极坐标图的绘制 5.pyplot散点图的绘制 6.单元小结 [网页链接[Python数据分析 ...

最新文章

  1. python爬虫下载-python爬虫之下载文件的方式总结以及程序实例
  2. spoj DPRSDCDR - Depressed Coder
  3. ios找不到信任证书_ios信任苹果企业级应用
  4. java 调优参数 newRatio, survivorRatio
  5. 运算符 优先级 结合性
  6. init,service和systemctl的区别
  7. 数据库流行度8月排行榜:Oracle 飙升 和 PostgreSQL 绝尘领跑第二梯队
  8. day4.编程语言简介
  9. 接口测试工具-Apipost变量的定义和使用
  10. mongodb自定义字段_mongodb为集合新增字段、删除字段、修改字段(转)
  11. 一本经典的程序员必看书籍————人月神话
  12. 小米8成功刷入Win11ARM64完整版系统
  13. 关于es6 async函数中reject状态的promise处理
  14. java 物体移动不了总结_java9迁移注意问题总结
  15. HIT2020春软件构造lab1
  16. 【Python学习】函数
  17. 腾讯AI开放平台使用尝试:代理后的文本翻译API使用方式
  18. pandas中的窗口对象(窗口函数)
  19. Mysql基于GTID复制模式-运维小结 (完整篇)
  20. Sentinel-2A数据处理

热门文章

  1. mysql实现自增字符串_Mysql实现字符串主键自增示例教程-Go语言中文社区
  2. iOS开发证书/发布证书不受信任
  3. 中国智能手机市场大幅衰退,仅华为vivo取得增长
  4. 从零开始使用ESP8266 + Blinker 实现小爱同学可控可读取状态的多路插座
  5. Win10系统重装过程(一键装机)
  6. listview下拉刷新上拉加载扩展(三)-仿最新版美团外卖
  7. 智慧工地给工地装上“最强大脑”
  8. 桌面窗口管理器dwm.exe内存过高,intel核显内存泄漏问题(附核显升级链接)
  9. 跟小静读CLR via C#(18)——Enum
  10. 开篇的个人感想和想法