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 randomfile_name='D:/Visual Effects/PS Algorithm/9.jpg';
img=io.imread(file_name)row, col, channel = img.shape# define the colormapcolor_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.0bNW = 1.0
bNE = 0.0
bSW = 0.5
bSE = 0.0xx = 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 / rowp = rNW + (rNE - rNW) * fx
q = rSW + (rSE - rSW) * fx
r = ( p + (q - p) * fy )
r[r<0] = 0
r[r>1] =1p = gNW + (gNE - gNW) * fx
q = gSW + (gSE - gSW) * fx
g = ( p + (q - p) * fy )
g[g<0] = 0
g[g>1] =1p = bNW + (bNE - bNW) * fx
q = bSW + (bSE - bSW) * fx
b = ( p + (q - p) * fy )
b[b<0] = 0.0
b[b>1] = 1.0color_map[:, :, 0] = r * 255
color_map[:, :, 1] = g * 255
color_map[:, :, 2] = b * 255# segment the imageN_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] = maskT_mask[:, :, 1] = maskT_mask[:, :, 2] = maskx_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 = colorseg_img = seg_img * (1-T_mask) + T_img * T_maskplt.figure(2)
plt.imshow(seg_img)
plt.show()
原图:
效果图:
Python: PS 图像特效 — 抽象画风相关推荐
- python图像转“抽象”画风
python讨论qq群:996113038 导语: 前几天给大家写过一个"图像转素描风"的推送,就是用图像处理的方法.修改图像里面的像素点的值.将图像修改成"素描画&qu ...
- Python: PS 滤镜特效 -- Marble Filter
本文用 Python 实现 PS 滤镜特效,Marble Filter, 这种滤镜使图像产生不规则的扭曲,看起来像某种玻璃条纹, 具体的代码如下: import numpy as np import ...
- Python: PS 图像调整--饱和度调整
本文用 Python 实现 PS 图像调整中的饱和度调整算法,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/detail ...
- Python: PS 图像调整--亮度调整
本文用 Python 实现 PS 图像调整中的亮度调整,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/2 ...
- Python: PS 图像调整--明度调整
本文用 Python 实现 PS 图像调整中的明度调整: 我们知道,一般的非线性RGB亮度调整只是在原有R.G.B值基础上增加和减少一定量来实现的,而PS的明度调整原理还得从前面那个公式上去找.我们将 ...
- PS 图像特效算法— —渐变
这个特效利用图层的混合原理,先设置一个遮罩层,然后用遮罩层与原图进行相乘,遮罩层不同,图像最后呈现的渐变效果也不一样. clc; clear all; close all; addpath('E:\P ...
- PS 图像特效-非线性滤波器
利用非线性滤波器,使图像的色彩凝块,形成一种近似融化的特效. clc; clear all; addpath('E:\PhotoShop Algortihm\Image Processing\PS A ...
- Python: PS 图像调整--颜色梯度
本文用 Python 实现 PS 中的色彩图,可以看到颜色的各种渐变,具体的效果可以参考以前的博客: http://blog.csdn.net/matrix_space/article/details ...
- Python代码图像特效算法制作
毛玻璃特效 毛玻璃特效,是利用图像邻域内随机一个像素点颜色代替当前像素,从而实现毛玻璃一般朦胧模糊的效果. # 毛玻璃特效 def glass(self): glassImg = np.zer ...
最新文章
- vb怎么抓取html的class,vbs怎么获取网页内容
- BO QUERY BUILDER - SI_INSTANCE相关属性
- 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0[已解决]
- 上海理工大学:用数字技术打响智慧抗疫信息战
- CSS样式引入方式和部分CSS样式的设置
- PyTorch 1.0 中文官方教程:可选:数据并行处理
- QQ 群文件紧急扩容;钟南山团队与阿里云联手推进新冠疫苗研发;PhpStorm 2019.3.3 发布| 极客头条...
- Android设备间通信(wifi连接)
- iOS-各种报错,各种error
- PoJ3278--Catch That Cow(Bfs)
- JMETER压力测试思维导图
- C-free5 安装教程
- MySQL特异功能之:Impossible WHERE noticed after reading const tables
- java编程语言怎么学习,详细说明
- (纪录片)鸟瞰中国 China from Above
- 名帖347 怀素 草书《大草千字文》
- 苹果笔记本如何安装双系统
- Linux浏览器无法访问网络解决方案
- 物联网卡传感器赋能零售商品感应机制 开启智能零售新风尚
- Jupyter如何切换工作路径至E盘文件夹