您的位置:首页 > 其它

PS 图像调整算法——黑白

2014-04-24 16:33 337 查看
这个算法是参考自 阿发伯 的博客:

http://blog.csdn.net/maozefa

黑白调整

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; %%%% 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

for 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;

end

end

imshow(Image/255);

figure, imshow(Gray_img/255);

原图:



黑白

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: