Python实现PS图像调整颜色梯度效果示例


Posted in Python onJanuary 25, 2018

本文实例讲述了Python实现PS图像调整颜色梯度效果。分享给大家供大家参考,具体如下:

这里用 Python 实现 PS 中的色彩图,可以看到颜色的各种渐变,具体的效果可以参考附录说明

和之前的程序相比,这里利用矩阵的运算替代了 for 循环,提升了运行的效率。

import numpy as np
import matplotlib.pyplot as plt
from skimage import io
import numpy.matlib
from skimage import img_as_float
file_name='D:/Visual Effects/PS Algorithm/4.jpg';
img=io.imread(file_name)
img = img_as_float(img)
row, col, channel = img.shape
rNW = 0.5
rNE = 1.0
rSW = 1.0
rSE = 0.0
gNW = 0.0
gNE = 0.5
gSW = 0.0
gSE = 1.0
bNW = 1.0
bNE = 0.0
bSW = 1.0
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
img[:, :, 0] = r
img[:, :, 1] = g
img[:, :, 2] = b
plt.figure(1)
plt.imshow(img)
plt.axis('off');
plt.show();

附录:PS 色调— —颜色梯度

clc;
  clear all;
  close all;
  addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');
  I=imread('4.jpg');
  Image=double(I)/255;
  [height, width, depth]=size(Image);
  rNW=1.0;   gNW=0.0;  bNW=0.0;
  rNE=1.0;   gNE=1.0;  bNE=0.0;
  rSW=0.0;   gSW=0;   bSW=1.0;
  rSE=0.0;   gSE=1.0;  bSE=0.0;
  Img_new=Image;
  for ii=1:height
    for jj=1:width
      fx = jj / width;
      fy = ii / height;
      p = rNW + (rNE - rNW) * fx;
      q = rSW + (rSE - rSW) * fx;
      r = ( p + (q - p) * fy );
      r = min(max(r, 0), 1);
      p = gNW + (gNE - gNW) * fx;
      q = gSW + (gSE - gSW) * fx;
      g = ( p + (q - p) * fy );
      g = min(max(g, 0) ,1);
      p = bNW + (bNE - bNW) * fx;
      q = bSW + (bSE - bSW) * fx;
      b = ( p + (q - p) * fy );
      b = min(max(b, 0), 1);
      Img_new(ii, jj, 1)=r;
      Img_new(ii, jj, 2)=g;
      Img_new(ii, jj, 3)=b;
    end  
  end
  imshow(Img_new);
  imwrite(Img_new, 'out.jpg');

参考来源:http://www.jhlabs.com/index.html

本例Python运行效果图:

原图:

Python实现PS图像调整颜色梯度效果示例

运行效果:

Python实现PS图像调整颜色梯度效果示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
python中使用enumerate函数遍历元素实例
Jun 16 Python
总结Python中逻辑运算符的使用
May 13 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
详解supervisor使用教程
Nov 21 Python
python @property的用法及含义全面解析
Feb 01 Python
pandas创建新Dataframe并添加多行的实例
Apr 08 Python
Python实现的远程文件自动打包并下载功能示例
Jul 12 Python
pygame实现打字游戏
Feb 19 Python
Pytorch之contiguous的用法
Dec 31 Python
keras获得某一层或者某层权重的输出实例
Jan 24 Python
利用Python脚本实现自动刷网课
Feb 03 Python
Python使用requests发送POST请求实例代码
Jan 25 #Python
python使用pandas实现数据分割实例代码
Jan 25 #Python
python实现闹钟定时播放音乐功能
Jan 25 #Python
python实现壁纸批量下载代码实例
Jan 25 #Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 #Python
Python动刷新抢12306火车票的代码(附源码)
Jan 24 #Python
python中的set实现不重复的排序原理
Jan 24 #Python
You might like
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
PHP如何使用Memcached
2016/04/05 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
深入理解Python中各种方法的运作原理
2015/06/15 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
多重CSS背景动画实现方法示例
2014/04/04 HTML / CSS
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
法律专业个人实习自我鉴定
2013/09/23 职场文书
小区门卫岗位职责
2013/12/31 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
2014高考励志标语
2014/06/05 职场文书
安全生产月宣传标语
2014/10/06 职场文书
阿甘正传观后感
2015/06/01 职场文书
宇宙与人观后感
2015/06/05 职场文书