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学习笔记之常用函数及说明
May 23 Python
Python 的描述符 descriptor详解
Feb 27 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
python列表list保留顺序去重的实例
Dec 14 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
Python flask框架post接口调用示例
Jul 03 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Python函数中的可变长参数详解
Sep 12 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
Jun 29 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 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
php引用返回与取消引用的详解
2013/06/08 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
python条件和循环的使用方法
2013/11/01 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
Python二分查找详解
2015/09/13 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
PHP面试题及答案一
2012/06/18 面试题
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
千手观音观后感
2015/06/03 职场文书
2015暑假假期总结
2015/07/13 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js
Golang 字符串的常见操作
2022/04/19 Golang