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列表操作使用示例分享
Feb 21 Python
Python单元测试框架unittest使用方法讲解
Apr 13 Python
利用Python中的mock库对Python代码进行模拟测试
Apr 16 Python
利用python发送和接收邮件
Sep 27 Python
Python爬虫代理IP池实现方法
Jan 05 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 Python
ipython jupyter notebook中显示图像和数学公式实例
Apr 15 Python
在Python中如何使用yield
Jun 07 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 access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
php一次性删除前台checkbox多选内容的方法
2013/09/22 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
深入理解redux之compose的具体应用
2020/01/12 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
详解python Todo清单实战
2018/11/01 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
python mock测试的示例
2020/10/19 Python
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
高中语文教学反思
2014/01/16 职场文书
上课打牌的检讨书
2014/02/15 职场文书
自强之星事迹材料
2014/05/12 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
申报优秀教师材料
2014/12/16 职场文书
销售内勤岗位职责
2015/02/10 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
如何利用golang运用mysql数据库
2022/03/13 Golang