Python实现PS图像调整黑白效果示例

Python实现PS图像调整黑白效果示例,第1张

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

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

这里用Python 实现 PS 里的图像调整C黑白,PS 里的黑白并不是简单粗暴的将图像转为灰度图,而是做了非常精细的处理,具体的算法原理和效果图可以参考附录说明。

比起之前的程序,对代码进行了优化,完全用矩阵运算代替了 for 循环,运算效率提升了很多。具体的代码如下:

import numpy as npimport matplotlib.pyplot as pltfrom skimage import iofile_name='D:/Image Processing/PS Algorithm/4.jpg';img=io.imread(file_name)img = img * 1.0color_ratio = np.zeros(6)color_ratio[0]=0.4;   # Redcolor_ratio[1]=0.6;   # Yellowcolor_ratio[2]=0.4;   # Greencolor_ratio[3]=0.6;   # Cyancolor_ratio[4]=0.2;   # Bluecolor_ratio[5]=0.8;   # magentamax_val = img.max(axis = 2)min_val = img.min(axis = 2)sum_val = img.sum(axis = 2)mID_val = sum_val - max_val - min_valmask_r = (img[:,:,0] - min_val - 0.01) > 0mask_r = 1 - mask_rmask_g = (img[:,1] - min_val - 0.01) > 0mask_g = 1 - mask_gmask_b = (img[:,2] - min_val - 0.01) > 0mask_b = 1 - mask_bratio_max_mID = mask_r * color_ratio[3] + mask_g * color_ratio[5] + mask_b * color_ratio[1]mask_r = (img[:,0] - max_val + 0.01) < 0mask_r = 1 - mask_rmask_g = (img[:,1] - max_val + 0.01) < 0mask_g = 1 - mask_gmask_b = (img[:,2] - max_val + 0.01) < 0mask_b = 1 - mask_bratio_max= mask_r * color_ratio[4] + mask_g * color_ratio[0] + mask_b * color_ratio[2]I_out = max_val * 1.0I_out = (max_val-mID_val)*ratio_max + (mID_val-min_val)*ratio_max_mID + min_valplt.figure()plt.imshow(img/255.0)plt.axis('off')plt.figure(2)plt.imshow(I_out/255.0,plt.cm.gray)plt.axis('off')plt.show()

附录:PS 图像调整算法――黑白

黑白调整

Photoshop CS的图像黑白调整功能,是通过对红、黄、绿、青、蓝和洋红等6种颜色的比例调节来完成的。能更精细地将彩色图片转换为高质量的黑白照片。

Photoshop CS图像黑白调整功能的计算公式为:

gray= (max - mID) * ratio_max + (mID - min) * ratio_max_mID + min

公式中:gray为像素灰度值,max、mID和min分别为图像像素R、G、B分量颜色的最大值、中间值和最小值,ratio_max为max所代表的分量颜色(单色)比率,ratio_max_mID则为max与mID两种分量颜色所形成的复色比率。

默认的单色及复色比率为:

color_Ratio(1)=0.4;     %%%% Red
color_Ratio(2)=0.6;     %%%% Yellow
color_Ratio(3)=0.4;     %%%% Green
color_Ratio(4)=0.6;     %%%% Cyan
color_Ratio(5)=0.2;     %%%% Blue
color_Ratio(6)=0.8;     %%%% magenta

Program:

%%%%% 程序实现图像的黑白调整功能clc;clear all;close all;Image=imread('9.jpg');Image=double(Image);R=Image(:,1);G=Image(:,2);B=Image(:,3);[row,col] = size(R);Gray_img(1:row,1:col)=0;Sum_rgb=R+G+B;%%%% 各种颜色的默认比率color_Ratio(1:6)=0;color_Ratio(1)=0.4;   %%%% Redcolor_Ratio(2)=0.6;   %%%% Yellowcolor_Ratio(3)=0.4;   %%%% Greencolor_Ratio(4)=0.6;   %%%% Cyancolor_Ratio(5)=0.2;   %%%% Bluecolor_Ratio(6)=0.8;   %%%% magentafor i=1:row  for j=1:col    r=R(i,j);    g=G(i,j);    b=B(i,j);    Max_value=max(r,max(g,b));    Min_value=min(r,min(g,b));    MID_value=Sum_rgb(i,j)-Max_value-Min_value;    if(Min_value==r)      Index=0;    elseif(Min_value==g)      Index=2;    else      Index=4;    end    ratio_max_mID=color_Ratio(mod(Index+3,6)+1);    if(Max_value==r)      Index=1;    elseif(Max_value==g)      Index=3;    else      Index=5;    end    ratio_max=color_Ratio(Index);    Temp=(Max_value-MID_value)*ratio_max+(MID_value-Min_value)...           *ratio_max_mID+Min_value;    Gray_img(i,j)=(Max_value-MID_value)*ratio_max+(MID_value-Min_value)...           *ratio_max_mID+Min_value;  endendimshow(Image/255);figure,imshow(Gray_img/255);

本例Python运行结果如下:

原图:

运行效果图:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python图片 *** 作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串 *** 作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录 *** 作技巧汇总》

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

您可能感兴趣的文章:Python实现PS滤镜功能之波浪特效示例Python实现PS滤镜中马赛克效果示例Python实现PS滤镜的旋转模糊功能示例Python实现PS滤镜碎片特效功能示例Python实现PS滤镜的万花筒效果示例Python实现PS滤镜特效之扇形变换效果示例Python实现PS滤镜Fish lens图像扭曲效果示例Python实现PS图像明亮度调整效果示例Python实现PS图像调整颜色梯度效果示例Python实现PS图像抽象画风效果的方法Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例 总结

以上是内存溢出为你收集整理的Python实现PS图像调整黑白效果示例全部内容,希望文章能够帮你解决Python实现PS图像调整黑白效果示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1200678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存