python对图片颜色校正_Python实现PS图像调整颜色梯度效果示例

本文实例讲述了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,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,1);

p = bNW + (bNE - bNW) * fx;

q = bSW + (bSE - bSW) * fx;

b = ( p + (q - p) * fy );

b = min(max(b,1);

Img_new(ii,jj,1)=r;

Img_new(ii,2)=g;

Img_new(ii,3)=b;

end

end

imshow(Img_new);

imwrite(Img_new,'out.jpg');

本例Python运行效果图:

原图:

运行效果:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值