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中的__new__与__init__魔术方法理解笔记
Nov 08 Python
使用Python脚本将Bing的每日图片作为桌面的教程
May 04 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
对Tensorflow中权值和feature map的可视化详解
Jun 14 Python
python环形单链表的约瑟夫问题详解
Sep 27 Python
python利用小波分析进行特征提取的实例
Jan 09 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
Django模板Templates使用方法详解
Jul 19 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
在python中修改.properties文件的操作
Apr 08 Python
使用keras时input_shape的维度表示问题说明
Jun 29 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 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
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
JS trim去空格的最佳实践
2011/10/30 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
javascript数据类型详解
2017/02/07 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
js异步编程小技巧详解
2017/08/14 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Python中顺序表的实现简单代码分享
2018/01/09 Python
python模块之paramiko实例代码
2018/01/31 Python
django富文本编辑器的实现示例
2019/04/10 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
运动会四百米广播稿
2014/01/19 职场文书
2014中考励志标语
2014/06/05 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
python小型的音频操作库mp3Play
2022/04/24 Python
一文解答什么是MySQL的回表
2022/08/05 MySQL