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进程管理工具supervisor使用实例
Sep 17 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
利用Pyhton中的requests包进行网页访问测试的方法
Dec 26 Python
Python有参函数使用代码实例
Jan 06 Python
Python StringIO如何在内存中读写str
Jan 07 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
python随机模块random使用方法详解
Feb 14 Python
基于SpringBoot构造器注入循环依赖及解决方式
Apr 26 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
python面向对象版学生信息管理系统
Jun 24 Python
python游戏开发之pygame实现接球小游戏
Apr 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
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
PHP入门学习笔记之一
2010/10/12 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
php自定义hash函数实例
2015/05/05 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
2015/12/10 PHP
iframe 异步加载技术及性能分析
2011/07/19 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
python实现二维码扫码自动登录淘宝
2016/12/27 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
python3 求约数的实例
2019/12/05 Python
mac使用python识别图形验证码功能
2020/01/10 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
python sorted函数原理解析及练习
2020/02/10 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript