zoukankan      html  css  js  c++  java
  • 纯Python综合图像处理小工具(2)图像增强

    <背景>

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

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

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

    <效果> 

    原图:

     

     

    处理后: 

    lambda增强40%(0.4)

     

    <源码分析> 

    本文用到的是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)
    for i in 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)
    for i in 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)
    for i in 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)
    for i in 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
  • 相关阅读:
    软件体系架构复习要点
    Operating System on Raspberry Pi 3b
    2019-2020 ICPC North-Western Russia Regional Contest
    2019 ICPC ShenYang Regional Online Contest
    2019 ICPC XuZhou Regional Online Contest
    2019 ICPC NanChang Regional Online Contest
    2019 ICPC NanJing Regional Online Contest
    Codeforces Edu Round 72 (Rated for Div. 2)
    Codeforces Round #583 (Div.1+Div.2)
    AtCoder Beginning Contest 139
  • 原文地址:https://www.cnblogs.com/sopic/p/4537718.html
Copyright © 2011-2022 走看看