欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 海康工业相机白平衡比选择器对应的值被重置后,如何恢复原成像

海康工业相机白平衡比选择器对应的值被重置后,如何恢复原成像

2025/5/23 1:21:35 来源:https://blog.csdn.net/wangmengmeng99/article/details/148088978  浏览:    关键词:海康工业相机白平衡比选择器对应的值被重置后,如何恢复原成像

做项目的时候,有时候手抖,一不小心把一个成熟稳定的项目的相机配置,重置了,如何进行恢复呢,在不知道之前配置数据的情况下。

我在做项目的时候,为了让这个相机成像稳定一点,尤其是做颜色检测时,如果自动白平衡打开,会因为环境问题,光线波动,导致这个成像颜色波动,尤其是做颜色检测的时候,所以一般我都会把这个白平衡关掉,然后单独对红绿蓝三个通道去设置相应的值,调好了成像后,后面识别的时候,识别颜色的阈值就和当前的成像保持着关联,一但成像变化大了,就可能导致之前的颜色阈值不适配了,导致颜色识别错误。

今天没事的时候就会对着这个工业相机软件乱点乱看,就不小心把之前配置的参数重置了。成像发生变化后,如果不想改变算法,就要尽量配置参数让其更接近原先的成像。

首先:要需要两张图,一张图简称1图,第二张图简称2图

1图是原先的图,在参数未被重置时候,之前保存下的图

2图是重置参数后的图

此外如果画面目标变化了,我们要截取到一个不变区域,通过这个区域的颜色对比来计算。

其次:要知道重置后,当前图的白平衡对应的红绿蓝三个值

准备就绪后,上代码:

import cv2
import numpy as np
# 根据已有两张图1和2,还有2图对应的白平衡值,来求1图的白平衡值def calculate_white_balance(image1_path, image2_path, reference_wb):# 读取两张图像img1 = cv2.imread(image1_path)img2 = cv2.imread(image2_path)if img1 is None:raise Exception(f"无法读取图像: {image1_path}")if img2 is None:raise Exception(f"无法读取图像: {image2_path}")# 将图像转换为浮点数类型img1_float = img1.astype(np.float32)img2_float = img2.astype(np.float32)# 计算两张图像每个通道的平均值avg1_b = np.mean(img1_float[:, :, 0])avg1_g = np.mean(img1_float[:, :, 1])avg1_r = np.mean(img1_float[:, :, 2])avg2_b = np.mean(img2_float[:, :, 0])avg2_g = np.mean(img2_float[:, :, 1])avg2_r = np.mean(img2_float[:, :, 2])# 使用参考白平衡值ref_r, ref_g, ref_b = reference_wb# 计算两张图像之间的比例关系ratio_r = avg1_r / avg2_rratio_g = avg1_g / avg2_gratio_b = avg1_b / avg2_b# 计算1.jpg的白平衡值wb_r = int(ref_r * ratio_r)wb_g = int(ref_g * ratio_g)wb_b = int(ref_b * ratio_b)return wb_r, wb_g, wb_bdef main():# 参考图像的白平衡值reference_wb = (1360, 1124, 2110)  # (R, G, B)try:# 计算1.jpg的白平衡值wb_r, wb_g, wb_b = calculate_white_balance("1.png", "2.png", reference_wb)print(f"1.jpg的白平衡值:")print(f"R: {wb_r}")print(f"G: {wb_g}")print(f"B: {wb_b}")except Exception as e:print(f"错误: {str(e)}")if __name__ == "__main__":main()

输出结果:

1.jpg的白平衡值:
R: 1552
G: 1268
B: 2045

把这个值配置到白平衡对应的红绿蓝值即可,图像又恢复成1图的成像了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词