Python: PS 图像调整--对比度调整
来源:互联网 发布:php黑客帝国数字雨代码 编辑:程序博客网 时间:2024/06/03 16:00
本文用 Python 实现 PS 里的图像调整–对比度调整。具体的算法原理如下:
(1)、nRGB = RGB + (RGB - Threshold) * Contrast / 255
公式中,nRGB表示图像像素新的R、G、B分量,RGB表示图像像素R、G、B分量,Threshold为给定的阈值,Contrast为处理过的对比度增量。
Photoshop对于对比度增量,是按给定值的正负分别处理的:
当增量等于-255时,是图像对比度的下端极限,此时,图像RGB各分量都等于阈值,图像呈全灰色,灰度图上只有1条线,即阈值灰度;
当增量大于-255且小于0时,直接用上面的公式计算图像像素各分量;
当增量等于255时,是图像对比度的上端极限,实际等于设置图像阈值,图像由最多八种颜色组成,灰度图上最多8条线,即红、黄、绿、青、蓝、紫及黑与白;
当增量大于0且小于255时,则先按下面公式(2)处理增量,然后再按上面公式(1)计算对比度:
(2)、nContrast = 255 * 255 / (255 - Contrast) - 255
公式中的nContrast为处理后的对比度增量,Contrast为给定的对比度增量。
import matplotlib.pyplot as pltfrom skimage import iofile_name='D:/Visual Effects/PS Algorithm/4.jpg';img=io.imread(file_name)img = img * 1.0thre = img.mean()# -100 - 100contrast = -55.0img_out = img * 1.0if contrast <= -255.0: img_out = (img_out >= 0) + thre -1elif contrast > -255.0 and contrast < 0: img_out = img + (img - thre) * contrast / 255.0 elif contrast < 255.0 and contrast > 0: new_con = 255.0 *255.0 / (256.0-contrast) - 255.0 img_out = img + (img - thre) * new_con / 255.0 else: mask_1 = img > thre img_out = mask_1 * 255.0img_out = img_out / 255.0 # 饱和处理mask_1 = img_out < 0 mask_2 = img_out > 1img_out = img_out * (1-mask_1)img_out = img_out * (1-mask_2) + mask_2plt.figure()plt.imshow(img/255.0)plt.axis('off')plt.figure(2)plt.imshow(img_out)plt.axis('off')
效果图:
阅读全文
0 0
- Python: PS 图像调整--对比度调整
- Python: PS 图像调整--明度调整
- Python: PS 图像调整--亮度调整
- Python: PS 图像调整--饱和度调整
- Python: PS 图像调整--黑白
- Python: PS 图像调整--颜色梯度
- Photoshop图像亮度/对比度调整
- 图像亮度/对比度的调整
- Photoshop图像亮度/对比度调整
- 图像对比度、亮度值调整
- opencv学习调整图像对比度
- 调整图像亮度和对比度
- 关于PS图像调整
- 图像对比度与亮度调整算法实现(Python&OpenCV)
- 图像对比度与亮度调整算法实现(Python&OpenCV)
- PS 图像调整算法——自动对比度 (Auto Contrast)
- ps对比度调整的三种方法:ps自动对比度、色阶和曲线调整
- Delphi图像处理 -- 亮度/对比度调整
- KMeans聚类图明晰画法
- Java事件处理——按钮和按键映射到动作对象
- CRC32查表法算法实现
- 数组拷贝
- cgi配置:apache2.4与apache2.2区别
- Python: PS 图像调整--对比度调整
- ZZULIOJ 2135 这里是天堂!【概率Dp---拆分分子分母】
- WSAAsyncGetHostByName()函数的正确使用!
- 使用 Office 365 PowerShell 管理用户帐户和许可证(八)使用 Office 365 PowerShell 冻结用户账户
- Spring MVC之异常处理
- Java基础--递归算法(递归结构)
- 对Maven、gradle、svn、spring 3.0 fragment、git的想法
- 微信小程序: WebSocket应用
- 使用 Office 365 PowerShell 管理用户帐户和许可证(九)使用 Office 365 PowerShell 删除和还原用户账户