Numpy入门实例Ⅰ

在观看博客正文前,读者首先需要具备简单的Python知识和一些Numpy库的基本操作。下面请跟随笔者的脚步走进本次的实例教程——图像的手绘风格绘制!

设计思路:

  1. 灵活运用自身所学的Numpy知识;
  2. 学会Numpy和PIL库的搭配使用;
  3. 使用Numpy库将图片转换为数组表示形式;
  4. 结合Numpy和PIL库提取图像特征形成手绘效果。

技术简介:

  1. 将图像转换为有规则的二维数组;
  2. 将图像进行转换后,利用Numpy中的方法访问图像上的任意像素值;
  3. 将图像用灰度色彩表示,并对图像进行灰度变换,主要有:反变换、区间变换、像素平方处理;
  4. 对图像进行计算梯度、梯度归一化、虚拟光源、重构图像等操作;
  5. 图像手绘效果呈现。

流程与实现:

  • 对图像进行简单操作:
  1. 打开图片,查看图片的属性值;
  2. 通过改变RGB值,实现图片的简单变换,主要操作有:反变换、区间变换、像素平方处理;
# -*- coding: utf-8 -*-
# @Time :2022/3/19 11:39
# @Author : 搬砖与板砖
# @File :Hand_painted.py
from PIL import Image
import numpy as np
im = np.array(Image.open("d:/1.jpg").convert('L'))
print(im.shape, im.dtype)# 对图像进行简单转换
im1 = 255-im
im2 = (100/255)*im+150
im3 = 255*(im1/255)**2
pil_im = Image.fromarray(np.uint(im3))
pil_im.show()
  1. 操作结果如图:

  • 对图像进行计算梯度、梯度归一化、虚拟光源、重构图像、输出图片操作:
  1. 颜色只有黑白两种(转灰度图,像素点表示灰度值);
  2. 勾勒轮廓,边界线条较重(计算梯度,梯度大的像素点分配更大的灰度值);
  3. 相同或相近的色彩趋于白色(计算梯度,相同或相近的色彩的灰度图的梯度值接近于0);
  4. 略有光源效果(在梯度分量上乘上光源影响因子在该方向上的投影)。
# -*- coding: utf-8 -*-
# @Time :2022/3/19 11:39
# @Author : 搬砖与板砖
# @File :Hand_painted.py
from PIL import Image
import numpy as np
a = np.asarray(Image.open("D:/1.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  # x,y,z表示图像平面的单位法向量在三个轴上的投影
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)  # 舍弃溢出的灰度值
hm = Image.fromarray(b.astype('uint8'))
hm.save('D:\\2.jpg')
  1. 操作结果如图:

    如有任何问题皆可留言,共同商讨一同进步。
    您的支持是笔者前进的动力,感谢观看!

【Numpy入门实例:图像的手绘效果】相关推荐

  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. tkinter库绘图实例13:手绘画板效果

    实例代码 import tkinter as tk #导入tkinter库,并重命名为tk mywindow = tk.Tk() #创建一个窗体 mywindow.title("手绘效果&q ...

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

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

  8. Python实现图片手绘效果

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

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

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

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

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

最新文章

  1. 聊聊自动化测试路上遇到的挑战
  2. 算法---给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合
  3. kibana操作elasticsearch:新增数据(随机生成id)
  4. linux 如何创建内核进程,Linux内核的进程创建和执行.pdf
  5. 01-申明变量及变量命名
  6. Hexo自定义页面的方法
  7. Qt工作笔记-QTreeWidget求总结点数以及此树中最多孩子的个数(非递归)
  8. 网页ui设计模板素材|液体流动效果!
  9. python释放变量内存_python解释器安装,运行python程序的方式及程序运行的步骤,变量与自动的内存管理...
  10. 超火的漫画线稿上色AI出新版了!无监督训练,效果更美好 | 代码+Demo
  11. oracle 下载 pb12.5,PowerBuilder 12.6
  12. 漂亮的html跳转页面代码,HTML网页实例代码:简洁漂亮的跳转等待页面
  13. Android微信如何退版本,微信7.0降级教程 微信版本回退教程
  14. 牛客网小白月赛22计算A+B(题解)
  15. 如何设置谷歌搜索结果点击打开新页面
  16. 解决小程序view之间默认的空隙
  17. 从Hibernate4到Hibernate5的建表
  18. 黑客捣毁了个暗网杀手网站,却险些触发了世界各地的多起杀戮...
  19. 与 BGI 绘图库的兼容情况
  20. android存储文件数据恢复,安卓手机内置储存中的照片误删怎么恢复

热门文章

  1. 第三方PDF查看--本地查看
  2. Linux各类日志查看
  3. 《个人信息安全规范 (2019-6-21) 》征求意见稿的最新变化
  4. 【数据分析案例】留存率分析方法
  5. matlab推挽用的变压器,推挽逆变+全桥整流~~~~逆变器变压器设计
  6. 优酷kux视频文件转换成mp4格式
  7. GPS经纬度 转化为 M
  8. 如何看药博士系统服务器的站点,药博士系列管理软件
  9. 倾斜摄影三维建模软件photoscan教程
  10. Mac安装pr拓展时没有CEP文件夹