Python实现 PS 图像调整中的亮度调整
本文用Python实现PS图像调整中的亮度调整,具体的算法原理和效果可以参考之前的博客:
https://www.nhooo.com/article/164191.htm
importmatplotlib.pyplotasplt
fromskimageimportio
file_name='D:/ImageProcessing/PSAlgorithm/4.jpg';
img=io.imread(file_name)
Increment=-10.0
img=img*1.0
I=(img[:,:,0]+img[:,:,1]+img[:,:,2])/3.0+0.001
mask_1=I>128.0
r=img[:,:,0]
g=img[:,:,1]
b=img[:,:,2]
rhs=(r*128.0-(I-128.0)*256.0)/(256.0-I)
ghs=(g*128.0-(I-128.0)*256.0)/(256.0-I)
bhs=(b*128.0-(I-128.0)*256.0)/(256.0-I)
rhs=rhs*mask_1+(r*128.0/I)*(1-mask_1)
ghs=ghs*mask_1+(g*128.0/I)*(1-mask_1)
bhs=bhs*mask_1+(b*128.0/I)*(1-mask_1)
I_new=I+Increment-128.0
mask_2=I_new>0.0
R_new=rhs+(256.0-rhs)*I_new/128.0
G_new=ghs+(256.0-ghs)*I_new/128.0
B_new=bhs+(256.0-bhs)*I_new/128.0
R_new=R_new*mask_2+(rhs+rhs*I_new/128.0)*(1-mask_2)
G_new=G_new*mask_2+(ghs+ghs*I_new/128.0)*(1-mask_2)
B_new=B_new*mask_2+(bhs+bhs*I_new/128.0)*(1-mask_2)
Img_out=img*1.0
Img_out[:,:,0]=R_new
Img_out[:,:,1]=G_new
Img_out[:,:,2]=B_new
Img_out=Img_out/255.0
#饱和处理
mask_1=Img_out<0
mask_2=Img_out>1
Img_out=Img_out*(1-mask_1)
Img_out=Img_out*(1-mask_2)+mask_2
plt.figure()
plt.imshow(img/255.0)
plt.axis('off')
plt.figure(2)
plt.imshow(Img_out)
plt.axis('off')
plt.figure(3)
plt.imshow(I/255.0,plt.cm.gray)
plt.axis('off')
plt.show()
总结
以上所述是小编给大家介绍的Python实现PS图像调整中的亮度调整,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!