前言

之前经常在网上看到用PS实现真实图片到素描图片的转换,但是流程都大同小异,身为一只程序猿,必须来个一键转化额。

国际惯例,参考博客:

Photoshop基础教程:混合模式原理篇

颜色减淡的原理讲解以及应用

ps是如何通过最小值获得描边效果的?

图纸转线稿背后的计算机绘图原理

步骤与实现

网上的流程大都分为四个步骤:

  1. 去色:直接把彩图转成灰度图或者转成HSV/HSL后将饱和度S的值置零
  2. 反向:将去色后的图像颜色去反,直接用255减
  3. 滤镜:高斯模糊或者PS里面的最小值滤镜
  4. 颜色减淡:PS里面叫color dodge

那么python实现也很方便:

第一步:读图片,转灰度图

img = cv2.imread('./images/zly1.jpg')
# 去掉饱和度
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

第二步:反向,图像就变成了底片色

# 反相
img_inv = 255.0 - img_gray

第三步:高斯模糊或者最小值滤镜

# 高斯模糊
# img_filt = cv2.GaussianBlur(img_inv, ksize=(3, 3),sigmaX=0, sigmaY=0)
# 最小值滤镜
img_filt = np.zeros_like(img_inv,dtype=np.uint8)
radius = 3;
for i in range(radius,img_inv.shape[0]-radius):for j in range(radius,img_inv.shape[1]-radius):img_filt[i,j] = np.min(img_inv[i-radius:i+radius,j-radius:j+radius])

关于高斯模糊或者最小值滤镜的原理,可以看上面的参考博客,实测发现最小值滤镜效果或更好。

第四步:颜色减淡

# color dodge
A = img_gray.astype('float32')
B = img_filt.astype('float32')
img_dodge = A+(A*B)/(255.0-B)

原理在第一篇参考博客,其实就是一个公式,用于混合两组图像。

可视化

plt.figure(figsize=(8,8))
plt.subplot(121)
plt.imshow(img/255.0)
plt.axis('off')
plt.subplot(122)
plt.imshow(img_dodge/255.0,cmap='gray')
plt.axis('off')

我颖美如画…

有兴趣可以自行去按照流程在PS中操作一遍,可以达到一样的效果。

后记

记录一下这个好玩的流程,代码公布在微信公众号简介的github中,有兴趣或者疑问欢迎关注公众号,私信讨论问题,持续更新骨骼动画、机器学习、图像相关有趣实用的知识点。

简易的素描图片转换流程与实现相关推荐

  1. img解包打包工具_Python开发GUI实战:图片转换素描画工具!

    奋斗没有终点好好学习72变,因为将来 没有人能替你阻挡81难 . 生如蝼蚁,当有鸿鹄之志: 命如纸薄,应有不屈之心 . ! 今天被这句话触动了,所以开篇分享给大家.鸡汤有毒,但有时大家却靠它激励自己继 ...

  2. python将图片转换成动漫,python实现图片转换成素描和漫画格式

    本文实例为大家分享了python实现图片转换成素描和漫画格式的具体代码,供大家参考,具体内容如下 原图 图片转换后的成果 源码 # -*- coding: utf-8 -*- import cv2 f ...

  3. python 人像素描_基于python实现把图片转换成素描

    这篇文章主要介绍了基于python实现把图片转换成素描,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 导语: 你是否还在为当时年少时没有选择自己的梦 ...

  4. 利用Matlab将图片转换成素描(简笔画)风格

    题目: 利用Matlab将图片转换成素描(简笔画)风格 记得曾经看过别人的网络头像,是那种类似简笔画或素描的图片,一直以来都想做一个类似的头像,但始终不得要领.今天当我看到文献[1]中的图5.28时( ...

  5. python画素描画_基于python实现把图片转换成素描

    这篇文章主要介绍了基于python实现把图片转换成素描,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 导语: 你是否还在为当时年少时没有选择自己的梦 ...

  6. python 人像素描_python如何将图片转换素描画

    代码如下 # -*- coding:utf-8 -*- import cv2 import numpy as np from tkinter import filedialog, Tk from os ...

  7. Python开发GUI实战:图片转换素描画工具!

    奋斗没有终点 好好学习72变,因为将来 没有人能替你阻挡81难 . 生如蝼蚁,当有鸿鹄之志: 命如纸薄,应有不屈之心 . 今天被这句话触动了,所以开篇分享给大家.鸡汤有毒,但有时大家却靠它激励自己继续 ...

  8. 用python画apc图_Python开发GUI实战:图片转换素描画工具!

    奋斗没有终点好好学习72变,因为将来 没有人能替你阻挡81难 . 生如蝼蚁,当有鸿鹄之志: 命如纸薄,应有不屈之心 . ! 今天被这句话触动了,所以开篇分享给大家.鸡汤有毒,但有时大家却靠它激励自己继 ...

  9. python base64 实现_用Python开发GUI实战教程:图片转换素描画工具

    python作为胶水语言,它几乎是无所不能的,但个人一直觉得在GUI开发方面,python可以算作是短板了,为什么?因为性能-python的性能问题,往往出现在其他编程语言对其的鄙夷中.但不管如何py ...

最新文章

  1. bootstrap.yml和application.yml的区别
  2. 大数据集群部署时ssh的公钥和似钥作用汇总
  3. ubuntu安装php5-mysql_Ubuntu下安装Apache2, php5 mysql
  4. SDN精华问答 | SDN的核心技术是什么?
  5. 吴恩达新书手稿完工,现在开放免费下载 | 资源
  6. 解决 webpack-dev-server 不能自动刷新的问题
  7. YDOOK:VSC VisioStudio Code 设置 鼠标滚轮缩放字体大小 滚轮控制字体放大缩小
  8. 水系图一般在哪里找得到_腾远带你了解:虹吸排水系统原理、组成及应用优势...
  9. centos服务器修改密码,linux centos默认的密码
  10. 【最新黑苹果】Big Sur/Win双系统-小米笔记本pro/gtx 安装教程!
  11. 如何使用plink进行二分类性状的GWAS分析并计算PRS得分
  12. redis的二进制安全机制理解
  13. AriaNg 是一个让 aria2 更容易使用的现代 Web 前端
  14. DGV:人类基因组结构变异数据库
  15. 光敏电阻5506主要参数_光敏电阻详细参数?
  16. 微信小程序开发04 性能优化:借助微信开发者工具提升小程序性能
  17. C#如何立即回收内存
  18. R--ggplot包的学习(3)
  19. 令人感动的电影---虎兄虎弟
  20. Python数据分析实战,,美国总统大选数据可视化分析[基于pandas]

热门文章

  1. python编写安全工具_Python3学习系列(四):编写属于自己的邮件伪造工具
  2. String Modification CodeForces - 1316B(规律)
  3. 2016重庆计算机一级考试题型,重庆计算机一级考试真题2016年最新(笔试+上机).doc...
  4. 微信小程序怎么新建php文件,微信小程序中创建小程序页面的步骤介绍(图文)...
  5. 计算机图形学二维变换知识点,计算机图形学 二维变换及二维.ppt
  6. 深度学习(18)神经网络与全连接层一: 数据加载
  7. ACM及各类程序竞赛专业术语
  8. IEEE 754标准--维基百科
  9. java kafka 多线程消费
  10. 玩转GIT系列之【git的分支操作(查看分支/切换分支/新建分支/删除分支)】