基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理

系列文章目录

基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建

基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定

基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理

基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理

基于PyQt5的桌面图像调试仿真平台开发(5)亮度处理

基于PyQt5的桌面图像调试仿真平台开发(6)去马赛克

基于PyQt5的桌面图像调试仿真平台开发(7)伽马矫正

基于PyQt5的桌面图像调试仿真平台开发(8)锐化

基于PyQt5的桌面图像调试仿真平台开发(9)去噪

基于PyQt5的桌面图像调试仿真平台开发(10)色彩矩阵

基于PyQt5的桌面图像调试仿真平台开发(11)清晰度测试

基于PyQt5的桌面图像调试仿真平台开发(12)图像灰度显示

基于PyQt5的桌面图像调试仿真平台开发(13)图像边缘显示

基于PyQt5的桌面图像调试仿真平台开发(14)色彩增强

基于PyQt5的桌面图像调试仿真平台开发(15)图像融合

工程代码:https://gitee.com/xiaoshixiao00/py-ispp
 



前言

前面学习了黑电平处理,一般用于矫正暗电流。现在学习白平衡处理,用来矫正图像传感器对不同色彩敏感度和人眼的差别。


一、白平衡是什么?

         白平衡,字面上的理解是白色的平衡。白平衡是描述显示器中红、绿、蓝三基色混合生成后白色精确度的一项指标。白平衡是电视摄像领域一个非常重要的概念,通过它可以解决色彩还原色调处理的一系列问题。白平衡是随着电子影像再现色彩真实而产生的,在专业摄像领域白平衡应用的较早。家用电子产品(家用摄像机、数码照相机)中也广泛地使用。

二、开发步骤和演示

1.编写手动白平衡

①,开发UI和绑定控件

此步骤和黑电平开发基本一致,此处省略

②,开发手动白平衡算法

此算法的原理是创建一个大小为256的整数数组,数组里面保存了灰度映射的数据,映射方法直接通过opencv的LUT函数进行,灰度映射的权值也就是白平衡的红色和蓝色的增益值。

def proc_image_awb_gain(image_rgb,rgain,bgain):
    print("proc_image_awb_gain,",rgain,bgain)

    r_ary,g_ary,b_ary=cv2.split(image_rgb)

    #生成映射表
    rgain_ary = np.array([i * rgain / 100 for i in range(0, 256)]).clip(0, 255).astype('uint8')
    bgain_ary = np.array([i * bgain / 100 for i in range(0, 256)]).clip(0, 255).astype('uint8')
    print("rgain_ary:", rgain_ary)
    print("rbgain_ary:",bgain_ary)

    #通过映射表进行映射
    r_ary = cv2.LUT(r_ary, rgain_ary)
    #print("r_ary:", r_ary)
    b_ary = cv2.LUT(b_ary, bgain_ary)
    #print("b_ary:", b_ary)
    #print("g_ary:", g_ary)
    result=cv2.merge([r_ary,g_ary,b_ary])
    #print("result:", result)
    return result

③,演示

打开图片

点击白平衡处理,设置rgain和bgain,实际的增益值是rgain/100,bgain/100,最后可以看到调整后的效果


总结

这里我们使用了简单的映射表的形式实现了手动白平衡的算法,实际情况大多使用自动白平衡算法,不过本工具仅用来调试所以暂时不实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值