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的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
python实现任意位置文件分割的实例
Dec 14 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
python根据txt文本批量创建文件夹
Dec 08 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
Django框架会话技术实例分析【Cookie与Session】
May 24 Python
python实现按关键字筛选日志文件
Dec 24 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
Python创建文件夹与文件的快捷方法
Dec 08 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
php程序内部post数据的方法
2015/03/31 PHP
javascript 上下banner替换具体实现
2013/11/14 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
Node调用Java的示例代码
2017/09/20 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
django 常用orm操作详解
2017/09/13 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
python机器学习之神经网络(三)
2017/12/20 Python
对pandas处理json数据的方法详解
2019/02/08 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
详解python logging日志传输
2020/07/01 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
新书吧创业计划书
2014/01/31 职场文书
网络管理专业求职信
2014/03/15 职场文书
房屋出租协议书
2014/04/10 职场文书
委托书格式要求
2015/01/28 职场文书
小班上学期个人总结
2015/02/12 职场文书
小学安全工作总结2015
2015/05/18 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS