Python实现PS图像抽象画风效果的方法


Posted in Python onJanuary 23, 2018

本文实例讲述了Python实现PS图像抽象画风效果的方法。分享给大家供大家参考,具体如下:

今天介绍一种基于图像分割和color map 随机采样生成一种抽象画风的图像特效,简单来说,就是先生成一张 color map 图,颜色是渐变的,然后针对要处理的图像,进行分割,这里用的是 SLIC 分割算法,然后从 color map 中随机采样,将采样得到的像素值赋予分割后的图像区域。

# -*- coding: utf-8 -*-
"""
Created on Sun Aug 20 08:31:04 2017
@author: shiyi
"""
import numpy as np
import matplotlib.pyplot as plt
from skimage import io
from skimage.segmentation import slic
import numpy.matlib
import random
file_name='D:/Visual Effects/PS Algorithm/9.jpg';
img=io.imread(file_name)
row, col, channel = img.shape
# define the colormap
color_map = img.copy()
rNW = 0.5
rNE = 1.0
rSW = 0.0
rSE = 0.5
gNW = 0.0
gNE = 0.5
gSW = 0.0
gSE = 1.0
bNW = 1.0
bNE = 0.0
bSW = 0.5
bSE = 0.0
xx = np.arange (col)
yy = np.arange (row)
x_mask = numpy.matlib.repmat (xx, row, 1)
y_mask = numpy.matlib.repmat (yy, col, 1)
y_mask = np.transpose(y_mask)
fx = x_mask * 1.0 / col
fy = y_mask * 1.0 / row
p = rNW + (rNE - rNW) * fx
q = rSW + (rSE - rSW) * fx
r = ( p + (q - p) * fy )
r[r<0] = 0
r[r>1] =1
p = gNW + (gNE - gNW) * fx
q = gSW + (gSE - gSW) * fx
g = ( p + (q - p) * fy )
g[g<0] = 0
g[g>1] =1
p = bNW + (bNE - bNW) * fx
q = bSW + (bSE - bSW) * fx
b = ( p + (q - p) * fy )
b[b<0] = 0.0
b[b>1] = 1.0
color_map[:, :, 0] = r * 255
color_map[:, :, 1] = g * 255
color_map[:, :, 2] = b * 255
# segment the image
N_block = 100
segments = slic(img, n_segments=N_block, compactness=10)
# plt.imshow(segments, plt.cm.gray)
seg_img = img.copy()
T_mask = img.copy()
for i in range(N_block):
 mask = (segments == i)
 T_mask[:, :, 0] = mask
 T_mask[:, :, 1] = mask
 T_mask[:, :, 2] = mask
 x_ind = int(random.random() * (col-1))
 y_ind = int(random.random() * (row-1))
 color = color_map[y_ind, x_ind, :]
 T_img = seg_img * T_mask
 T_img = color
 seg_img = seg_img * (1-T_mask) + T_img * T_mask
plt.figure(2)
plt.imshow(seg_img)
plt.show()

原图:

Python实现PS图像抽象画风效果的方法

效果图:

Python实现PS图像抽象画风效果的方法

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python常见数制转换实例分析
May 09 Python
python matplotlib画图实例代码分享
Dec 27 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
python梯度下降法的简单示例
Aug 31 Python
如何使用Python实现斐波那契数列
Jul 02 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
python基于TCP实现的文件下载器功能案例
Dec 10 Python
解决tensorflow添加ptb库的问题
Feb 10 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
Jan 11 Python
python单向链表实例详解
May 25 Python
matplotlib作图添加表格实例代码
Jan 23 #Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 #Python
Django实现组合搜索的方法示例
Jan 23 #Python
50行Python代码实现人脸检测功能
Jan 23 #Python
Python基于OpenCV实现视频的人脸检测
Jan 23 #Python
Python求出0~100以内的所有素数
Jan 23 #Python
python之matplotlib学习绘制动态更新图实例代码
Jan 23 #Python
You might like
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
JS判定是否原生方法
2013/07/22 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
Python实现Const详解
2015/01/27 Python
详解Python3中yield生成器的用法
2015/08/20 Python
Python实现带百分比的进度条
2016/06/28 Python
python3爬取各类天气信息
2018/02/24 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
基于python中theano库的线性回归
2018/08/31 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
Python 中 -m 的典型用法、原理解析与发展演变
2019/11/11 Python
python中常用的数据结构介绍
2021/01/12 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
生物制药专业求职信
2014/03/11 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
瘦西湖导游词
2015/02/03 职场文书
银行先进个人总结
2015/02/15 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
Go语言应该什么情况使用指针
2021/07/25 Golang