转载

纯Python综合图像处理小工具(2)图像增强

<背景>

这次分享的脚本是对图像进行增强处理,包含对图像像素的色彩增强、亮度增强、对比度增强、图像尖锐化等增强操作,主要基于PIL包的lambda和ImageEnhance模块。

使用方法和上一贴一样,本文脚本进行了多项功能的集成,一键完成所有处理,图像会即刻显示处理后的效果,并全部保存成特定名称jpeg。

下图是对处理后的图片的二维比较,为了更直观地比较,将处理项(亮度,颜色,对比度,锐度)作为横坐标,处理强度参数作为纵坐标(0,0.25,0.5,0.75,1)。当处理强度参数为1的时候,实际不对图像进行任何修改。

<效果> 

原图:

纯Python综合图像处理小工具(2)图像增强

处理后: 

纯Python综合图像处理小工具(2)图像增强

lambda增强40%(0.4)

纯Python综合图像处理小工具(2)图像增强

<源码分析> 

本文用到的是PIL的图像增强模块,即ImageEnhance 模块,这个模块可以快速对图像进行增强处理,包括色彩增强、亮度增强、对比度增强、图像尖锐化等等增强操作,所有操作都有相同形式的接口。通过相应类的enhance方法实现:色彩增强通过Color类的enhance方法实现;亮度增强通过Brightness类的enhance方法实现;对比度增强通过Contrast类的enhance方法实现;尖锐化通过Sharpness类的enhance方法实现。所有的操作都需要向类的构造函数传递一个Image对象作为参数,这个参数定义了增强作用的对象。同时所有的操作都返回一个新的Image对象。

如果传给enhance方法的参数是1.0,则不对原图像做任何改变,直接返回原图像的一个拷贝。

此外,lambda表达式可以(也仅限于)进行图像的亮度增强, imgbri=img.point(lambda i : i*1.4),代表对原图亮度增强40%。

irange代表图像增强参数的调整范围; 

istep代表图像按照等步长增强后输出的图片张数;

factor代表图像增强强度参数;

img_enhance_color.show("Color %f" %factor)显示图像增强效果;

img_enhance_color.save("Color_%.2f.jpg" %factor) 保存增强后的图像。

<全部源码> 

# start
 -*- coding: cp936 -*-
阿瓦图像村出品,转载请注明出处
QQ:576916092
import Image,ImageDraw

import ImageFilter,random,sys

import ImageEnhance

img = Image.open( " 1.jpg " )

# #图像处理##

# 转换为RGB图像
img = img.convert( " RGB " )              

# PIL图像增强lambda
imgbri=img.point( lambda i : i*1.4)  # 对每一个像素点进行增强
imgbri.save( " 1bri.jpg " )

imgbri.show()

# PIL图像增强ImageEnhance
istep=4

irange=4.0

imgenhancer_Color=ImageEnhance.Color(img)

forin range(istep):

factor=i/irange

img_enhance_color=imgenhancer_Color.enhance(factor)

img_enhance_color.show( " Color %f " %factor)

img_enhance_color.save( " Color_%.2f.jpg " %factor) 

imgenhancer_Brightness=ImageEnhance.Brightness(img)

forin range(istep):

factor=i/irange

img_enhance_Brightness=imgenhancer_Brightness.enhance(factor)

img_enhance_Brightness.show( " Brightness %f " %factor)

img_enhance_Brightness.save( " Brightness_%.2f.jpg " %factor) 

imgenhancer_Contrast=ImageEnhance.Contrast(img)

forin range(istep):

factor=i/irange

img_enhance_Contrast=imgenhancer_Contrast.enhance(factor)

img_enhance_Contrast.show( " Contrast %f " %factor)

img_enhance_Contrast.save( " Contrast_%.2f.jpg " %factor) 

imgenhancer_Sharpness=ImageEnhance.Sharpness(img)

forin range(istep):

factor=i/irange

img_enhance_Sharpness=imgenhancer_Sharpness.enhance(factor)

img_enhance_Sharpness.show( " Sharpness %f " %factor)

img_enhance_Sharpness.save( " Sharpness_%.2f.jpg " %factor) 

#

end

正文到此结束
Loading...