重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例讲述了Python实现PS图像调整黑白效果。分享给大家供大家参考,具体如下:
创新互联是专业的东阿网站建设公司,东阿接单;提供成都做网站、成都网站制作、成都外贸网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行东阿网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!这里用Python 实现 PS 里的图像调整–黑白,PS 里的黑白并不是简单粗暴的将图像转为灰度图,而是做了非常精细的处理,具体的算法原理和效果图可以参考附录说明。
比起之前的程序,对代码进行了优化,完全用矩阵运算代替了 for 循环,运算效率提升了很多。具体的代码如下:
import numpy as np import matplotlib.pyplot as plt from skimage import io file_name='D:/Image Processing/PS Algorithm/4.jpg'; img=io.imread(file_name) img = img * 1.0 Color_ratio = np.zeros(6) Color_ratio[0]=0.4; # Red Color_ratio[1]=0.6; # Yellow Color_ratio[2]=0.4; # Green Color_ratio[3]=0.6; # Cyan Color_ratio[4]=0.2; # Blue Color_ratio[5]=0.8; # Magenta max_val = img.max(axis = 2) min_val = img.min(axis = 2) sum_val = img.sum(axis = 2) mid_val = sum_val - max_val - min_val mask_r = (img[:, :, 0] - min_val - 0.01) > 0 mask_r = 1 - mask_r mask_g = (img[:, :, 1] - min_val - 0.01) > 0 mask_g = 1 - mask_g mask_b = (img[:, :, 2] - min_val - 0.01) > 0 mask_b = 1 - mask_b ratio_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) < 0 mask_r = 1 - mask_r mask_g = (img[:, :, 1] - max_val + 0.01) < 0 mask_g = 1 - mask_g mask_b = (img[:, :, 2] - max_val + 0.01) < 0 mask_b = 1 - mask_b ratio_max= mask_r * Color_ratio[4] + mask_g * Color_ratio[0] + mask_b * Color_ratio[2] I_out = max_val * 1.0 I_out = (max_val-mid_val)*ratio_max + (mid_val-min_val)*ratio_max_mid + min_val plt.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()
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。