码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数字增益和模拟增益理解和示例


    本文对数字增益和模型增益的理解做简单介绍,并使用海康工业相机的MVS提供调参平台进行参数调整和效果展示,最后使用C++模型相应的增益,更加直观的展示效果。

    目录

    • 模拟增益
    • 数字增益
    • 海康MVS示例
      • 模拟增益为0时:
      • 模拟增益为20时:
      • 开启数字增益
    • C++模拟示例
      • 系数为3
      • 系数为6
    • 总结

    相机增益分为模拟增益和数字增益两种。模拟增益可将模拟信号放大;数字增益可将模数转换后的信号放大。

    增益数值越高时,图像亮度也越高,同时图像噪声也会增加,对图像质量有所影响。且数字增益的噪声会比模拟增益的噪声更明显。

    若需要提高图像亮度,建议先增大相机的曝光时间;若曝光时间达到环境允许的上限不能满足要求,再考虑增大模拟增益;若模拟增益设置为最大值还不能满足要求,最后再考虑调整数字增益。

    模拟增益

    模拟增益主要是调节线性放大输入的信号强度。其大小直接影响输出音频功率的值在一定范围内,较大的输入值有利于提高输出信噪比,也会同比增加输出功率。但是当输入过大后输出功率增加变缓,而失真则急剧上升。其最佳调整值应使输出电压峰值在放大器的线性范围内。

    数字增益

    数字增益主要是调节数模转换输入的脉冲幅度。其值过小,会造成丢失误码的增大;如果幅度过大,因数据脉冲严重切顶,噪声脉冲增加,数字信号信噪比也会劣化,也造成干扰误码的增加。数字增益的最佳值是调整在数字电路输入的域值范围内的上限。数字增益的大小,不会增加或减小输出音频功率的值,只影响解码器的工作状态。

    海康MVS示例

    模拟增益为0时:

    在这里插入图片描述

    模拟增益为20时:

    在这里插入图片描述

    开启数字增益

    在这里插入图片描述

    C++模拟示例

    此处,使用像素值乘以固定系数的方式,模拟上面所述的增益效果。

    #include 
    #include 
    
    int main() {
        // 读取图像
        cv::Mat img = cv::imread("0.bmp");
        if (img.empty()) {
            std::cout << "Could not read the image" << std::endl;
            return 1;
        }
    
        cv::Mat brightened_img;
        cv::multiply(img, 6, brightened_img); // 像素值增大6倍
    
        cv::imshow("Original Image", img);
        cv::imshow("Brightened Image", brightened_img);
        cv::imwrite("zengyi.jpg", brightened_img);
        cv::waitKey(0);
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在这里插入图片描述

    系数为3

    在这里插入图片描述

    系数为6

    在这里插入图片描述

    总结

    由上可知,随着增益的增大,图像对比度和亮度都增强,但也有注意系数的设置,数字增益会产生噪声,系数过大曝光严重还会产生全白现场。

  • 相关阅读:
    PPT中的文字跟随Excel动态变化,且保留文字格式
    深入理解强化学习——智能体的类型:有模型强化学习智能体与免模型强化学习智能体
    HTML+CSS+JS网页设计期末课程大作业:中华传统文化主题设计题题材【非遗文化14页】 web前端开发技术 web课程设计 网页规划与设计
    一个STC单片机电路的梳理和编程
    手把手带你编写属于自己的 Starter
    java部署教程
    【编程题】【Scratch四级】2019.12 打棒球
    精读DDD:service
    docker学习笔记
    算法leetcode|76. 最小覆盖子串(rust重拳出击)
  • 原文地址:https://blog.csdn.net/qq_22734027/article/details/134530577
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号