软件问答

软件问答

设计软件问答为您提供设计软件的相关问题咨询与解答,印刷案例规格及印刷报价,让您实时了解设计软件的各类相关问题及印刷相关问题,并提供设计时的注意事项,为您提供各设计软件的相关问题解决方案

当前位置:网站首页 > 印刷问答 > 软件问答 > 正文

Photoshop图像处理算法—饱和度调整

印刷厂 2023-03-19 03:40 74

前言:之前在公司做项目的用到photoshop颜色空间的一些相关方法,在此总结一下。下面原理部分是从我的总结文档里截取来的。需要复制的童鞋自己手写一下~

2、程序部分

1)Matlab实验程序。

span style="font-size:18px;"clc;clear all;close all;

Image=imread('Fotor_LomoOrg.bmp');

Image=double(Image);

R=Image(:,:,1);

G=Image(:,:,2);

B=Image(:,:,*);

[row, col] = size(R);

R_new=R;

G_new=G;

B_new=B;

%%%% Increment, 饱和度调整增量(-100,100)photoshop的范围

Increment=-*0;

%换算成调整比率

Increment=Increment/100;

%利用HSL模式求得颜色的S和L

for i=1:row

for j=1:col

rgbMax=max(R(i,j),max(G(i,j),B(i,j)));

rgbMin=min(R(i,j),min(G(i,j),B(i,j)));

Delta=(rgbMax-rgbMin)/2**;

if(Delta==0) %如果delta=0,则饱和度S=0,所以不能调整饱和度

continue;

end

value = (rgbMax + rgbMin)/2**;

L=value/2; %Lightness

if(L0.*) %根据明度L计算饱和度S

S=Delta/value;

else

S =Delta/(2 - value);

end

%具体的饱和度调整,Increment为饱和度增减量

if (Increment=0)

if((Increment+S)=1)

alpha=S;

else

alpha=1-Increment;

end

alpha=1/alpha-1;

R_new(i,j) = R(i,j) + (R(i,j) - L * 2**) * alpha;

G_new(i,j) = G(i,j) + (G(i,j) - L * 2**) * alpha;

B_new(i,j) = B(i,j) + (B(i,j) - L * 2**) * alpha;

else

alpha=Increment;

R_new(i,j) = L*2** + (R(i,j) - L * 2**) * (1+alpha);

G_new(i,j) = L*2** + (G(i,j) - L * 2**) * (1+alpha);

B_new(i,j) = L*2** + (B(i,j) - L * 2**) * (1+alpha);

end

end

end

Image_new(:,:,1)=R_new;

Image_new(:,:,2)=G_new;

Image_new(:,:,*)=B_new;

imshow(Image/2**);

figure, imshow(Image_new/2**);/spanspan style="font-weight: bold; font-size: 18px;"

/span

2)C程序,此处只贴上关键处理部分,已经把图像变成了数组来处理

span style="font-size:18px;"void SaturationAdjustRGB(unsigned char *pSrc, unsigned char *pDest, int nWidth, int nHeight,int nParameter)

//局部变量声明

int i = 0;

int t = 0;

int nLength = nHeight * nWidth;

//参数处理

double dPercent= static_cast double (nParameter) / 100;

//RGB颜色通道声明

unsigned char *imgR = new unsigned char[nLength];

unsigned char *imgG = new unsigned char[nLength];

unsigned char *imgB = new unsigned char[nLength];

//局部变量声明

unsigned char rgbMax;

unsigned char rgbMin;

double dDelta;

double dValue;

double dL;

double dS;

double dAlpha;

//分离出RGB通道

for (i = 0; i nLength; i++)

t = * * i;

imgB[i] = pSrc[t];

imgG[i] = pSrc[t + 1];

imgR[i] = pSrc[t + 2];

for (int i = 0; i nLength; i++)

rgbMax = max(max(imgR[i] , imgG[i]) , imgB[i]);

rgbMin = min(min(imgR[i] , imgG[i]) , imgB[i]);

dDelta = static_castdouble(rgbMax - rgbMin) / 2**;

dValue = static_castdouble(rgbMax + rgbMin) / 2**;

//如果该像素点是灰色 不处理

if(0 == dDelta)

continue;

//按照公式计算明度L [0,1]

dL = dValue / 2;

//按照公式计算饱和度S [0,1]

if(dL 0.*)

dS = dDelta / dValue;

else

dS = dDelta / (2 - dValue);

//进行饱和度调整

if(dPercent = 0)

if(dPercent + dS = 1)

dAlpha = dS;

else

dAlpha = 1 - dPercent;

dAlpha = 1 / dAlpha - 1;

imgB[i] = imgB[i] + (imgB[i] - dL * 2**) * dAlpha;

imgG[i] = imgG[i] + (imgG[i] - dL * 2**) * dAlpha;

imgR[i] = imgR[i] + (imgR[i] - dL * 2**) * dAlpha;

else

dAlpha = dPercent;

imgB[i] = dL * 2** + (imgB[i] - dL * 2**) * (1 + dAlpha);

imgG[i] = dL * 2** + (imgG[i] - dL * 2**) * (1 + dAlpha);

imgR[i] = dL * 2** + (imgR[i] - dL * 2**) * (1 + dAlpha);

//得到结果

for(i = 0; i nLength; i++)

t = * * i;

pDest[t] = imgB[i];

pDest[t + 1] = imgG[i];

pDest[t + 2] = imgR[i];

//释放内存

if(!imgR)

delete []imgR;

imgR = NULL;

if(!imgG)

delete []imgG;

imgG = NULL;

if(!imgB)

delete []imgB;

imgB = NULL;

}/span

*、实验结果,与photoshop处理结果一致

图1 原图

021yin.com/xingyanxiao/article/details/480*****/

  • 手机包装盒印刷厂家|手机包装盒厂家哪家好

    手机包装盒印刷厂家|手机包装盒厂家哪家好

    印印吧ininba依托丰富的行业经验,致力打造中国最大的印刷交易平台和个性礼品定制平台,为客户提供彩盒包装,喜糖包装盒,茶叶盒包装,礼品包装盒等一站式包装印刷解决方案印印吧,您值得信赖的包装印刷专家包装盒设计,包装。简介深圳市金美雅吉印通...

    2023-05-18 83

  • 上海喷绘印刷|上海喷绘写真喷绘

    上海喷绘印刷|上海喷绘写真喷绘

    1、docan是一家上海做uv打印机厂家的品牌了,中文为东川的行业内这种英文的品牌厂家非常多的,例如1coloru指的是咔勒2JHF指的是金恒丰。2、这个就不好说了,不过一般第一年都不怎么赚钱,因为客源,员工,设备磨合等因素现在虽说利润没...

    2023-03-29 77

  • 【PPT】护理团体标准解读--成人氧气吸入疗法护理

    【PPT】护理团体标准解读--成人氧气吸入疗法护理

    作者:纳洛酮的护理天地(上海市长宁区程家桥街道社区卫生服务中心冯晓蕾)来源:中卫护研院021yin.com)...

    2023-03-16 63

  • logo笔定制

    logo笔定制

    广告笔制作厂家,广告笔制作公司为您提供广告笔制作咨询,广告笔制作案例,广告笔制作规格及广告笔制作报价,让您实时了解广告笔制作厂家的最新规格及报价,并提供广告笔制作时的注意事项,制作出让您满意的广告笔制作产品。

    2023-02-03 101

  • 石家庄画册印刷

    石家庄画册印刷

    石家庄画册印刷厂家,画册印刷公司为您提供画册印刷咨询,画册印刷案例,画册印刷规格及画册印刷报价,让您实时了解画册印刷厂家的最新规格及报价,并提供画册印刷时的注意事项,印刷出让您满意的画册印刷产品。

    2023-01-14 92

  • 印先森小神兽打印机:无需加墨好评,家庭利用足以

    印先森小神兽打印机:无需加墨好评,家庭利用足以

    “媒介”在教育部“停课不断学”的呼吁下,相信有孩子的家庭那两年更大的改动就是上彀课,如果孩子乖乖上课还好,但凡是家长需要在旁边监视,否则孩子大要率会分心。然后就演酿成孩子上课,家长还不克不及闲着,以至做本身的工做都不成以,所以经常会在业主...

    2022-12-03 69