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下利用OpenCV来旋转图像的教程
Apr 16 Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 Python
Python如何实现文本转语音
Aug 08 Python
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
深入理解Django的中间件middleware
Mar 14 Python
Python实现繁?转为简体的方法示例
Dec 18 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
解决Pytorch训练过程中loss不下降的问题
Jan 02 Python
Python IDE环境之 新版Pycharm安装详细教程
Mar 05 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
Python如何实现的二分查找算法
May 27 Python
Python读取yaml文件的详细教程
Jul 21 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下将XML转换为数组
2010/01/01 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
php数组去重复数据示例
2014/02/25 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
浅谈javascript 面向对象编程
2009/10/28 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
python截取两个单词之间的内容方法
2018/12/25 Python
Python 函数返回值的示例代码
2019/03/11 Python
使用Python函数进行模块化的实现
2019/11/15 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
汽车检测与维修专业求职信
2013/10/30 职场文书
运动会领导邀请函
2014/01/10 职场文书
人事专员的岗位职责
2014/03/01 职场文书
应聘教师求职信范文
2015/03/20 职场文书
MySQL中order by的执行过程
2022/06/05 MySQL