python实现图像RGB分层以及指定层增强

实现效果

代码部分

from PIL import Image,ImageEnhance
import numpy as np
import cv2

def colorenhance(img):#遍历每个像素,从每个像素中获取rgb值,进行增加修改从而达到色彩增强效果
    pix = img.load()
    width = img.size[0]
    height = img.size[1]
    for i in range(width):
        for j in range(height):
            tmp=[]
            r, g, b=pix[i,j]

            r=r+40
            g=g+30
            b=b+30
            tmp.append(r)
            tmp.append(g)
            tmp.append(b)
            pix[i,j]=tuple(tmp)
    img.show()
    img.save('enhance2.jpg')


imagepath='b02.jpg'
img = Image.open(imagepath)
data=img.getdata()
r=[(d[0],0,0) for d in data]
g=[(0,d[0],0) for d in data]
b=[(0,0,d[0]) for d in data]
a=[(d[0],d[0],d[0]) for d in data]

#只保留一个通道的值
img.putdata(r)
img.save('r2.jpg')

img.putdata(g)
img.save('g2.jpg')

img.putdata(b)
img.save('b2.jpg')


img.putdata(a)
enhance1=ImageEnhance.Color(img)
#如果此时使用自带的图像增强,会使用最后操作的putdata的通道
enhance1_img1=enhance1.enhance(0.5)


#enhance1_img1.show()


colorenhance(img)

image=cv2.imread(imagepath)
(B,G,R)=cv2.split(image)
cv2.imwrite('cvR2.jpg',R)
cv2.imwrite('cvG2.jpg',G)
cv2.imwrite('cvB2.jpg',B)

posted @ 2022-05-09 19:10  阿那哒  阅读(293)  评论(0编辑  收藏  举报