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 相关文章推荐
python的id()函数介绍
Feb 10 Python
python读取二进制mnist实例详解
May 31 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
python贪吃蛇游戏代码
Apr 18 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
对python tkinter窗口弹出置顶的方法详解
Jun 14 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Python zip函数打包元素实例解析
Dec 11 Python
如何使用Python发送HTML格式的邮件
Feb 11 Python
详解Python爬虫爬取博客园问题列表所有的问题
Jan 18 Python
python中tkinter复选框使用操作
Nov 11 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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
ini_set的用法介绍
2014/01/07 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
初中三年学生的学习自我评价
2013/11/13 职场文书
户籍证明的格式
2014/01/13 职场文书
鸿星尔克广告词
2014/03/21 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
先进个人申报材料
2014/12/30 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
Python数据分析之pandas读取数据
2021/06/02 Python
PHP正则表达式之RCEService回溯
2022/04/11 PHP