光栅投影中Gamma校正

光栅投影中Gamma校正学习郑东亮达飞鹏《提高数字光栅投影测量系统精度的gamma校正技术》一文后,对其中的关键技术进行了解析。摄像机获得的实际灰度图像:其中是整个系统的gamma值,是预编码值(需要根据实验进行选择),是幅度调制(保证归一化),是背景光强,和是由系统确定的值(需要通过投射不同的灰度图进行解算)。gamma校正的目的:选择一个合适的预编码值,使得,从而使系统的gamma失真得以消除或者减…

大家好,又见面了,我是你们的朋友全栈君。

学习 郑东亮 达飞鹏 《提高数字光栅投影测量系统精度的gamma校正技术》一文后,对其中的关键技术进行了解析。

摄像机获得的实际灰度图像:I_{c}^{i}=c_{1}(I_{s}^{i})^{\gamma _{a}/\gamma _{p}+\gamma _{b}}}}}}}+c_{2}}

其中{\gamma _{a}/\gamma _{p}+\gamma _{b}}=\gamma^{​{}'}是整个系统的gamma值,\gamma_{p}是预编码值(需要根据实验进行选择),c_{1}是幅度调制(保证I^{i}_{s}归一化),c_{2}是背景光强,\gamma_{a}\gamma_{b}是由系统确定的值(需要通过投射不同的灰度图进行解算)。

gamma校正的目的:选择一个合适的预编码值\gamma_{p},使得\gamma^{'}=1,从而使系统的gamma失真得以消除或者减小。

—————————————–

如何求解上述的\gamma^{​{}'}呢?

可以通过投射不同的灰度图,因为投射灰度图的灰度值已知,获取的灰度图的灰度值也已知,可以联立方程组求解只含有一个未知数的超越方程(可以采用寻优算法得到未知数的最佳值)。

超越方程组:\frac{I^{c}_{1}-I^{c}_{2}}{I^{c}_{1}-I^{c}_{3}}=\frac{(I^{s}_{1})^{\gamma^{​{}'}}-(I^{s}_{2})^{\gamma^{​{}'}}}{(I^{s}_{1})^{\gamma^{​{}'}}-(I^{s}_{3})^{\gamma^{​{}'}}}

寻优目标函数:f(\gamma^{​{}'})=\frac{I^{c}_{1}-I^{c}_{2}}{I^{c}_{1}-I^{c}_{3}}-\frac{(I^{s}_{1})^{\gamma^{​{}'}}-(I^{s}_{2})^{\gamma^{​{}'}}}{(I^{s}_{1})^{\gamma^{​{}'}}-(I^{s}_{3})^{\gamma^{​{}'}}}

得到\gamma^{​{}'}后,可以根据{\gamma _{a}/\gamma _{p}+\gamma _{b}}=\gamma^{​{}'}解出\gamma_{a}\gamma_{b}(当然,需要利用寻优算法寻找到两个最佳的\gamma^{​{}'}

得到\gamma_{a}\gamma_{b}后,令\gamma^{​{}'}为1,再解出最终的预编码值\gamma_{p}

—————————————–

如何选择合适的预编码值?

这部分内容是与传统的方法进行对比,找到一个可以使相位误差与传统方式得到的误差最为接近时的预编码值,可以试错,也可以猜想一个不太离谱的值,然后取其一定范围的值群,最后进行实验的对比。

这部分内容感觉有点怪怪的,看似不符合一般科学实验的规则。。。但是这种方式带有逆向思维的处理方法非常的独到!通过猜想,然后验证猜想,找到真理!

—————————————–

灰度响应范围如何确定?

这部分内容可以通过投射不同灰度级的图像进行分析,得到一个合适的灰度级范围。

—————————————–

后续操作

确定好了灰度级范围后,就可以选取3种不同灰度值作为计算机的输入图像灰度值(归一化到I^{s}_{i}),这样就可以正常投射灰度图像了,然后再根据上述的步骤一步步的确定参数。

这里有个技巧,是初始化预编码值,根据预编码值,得到确定的灰度响应函数,然后计算\gamma^{​{}'}\gamma_{a}\gamma_{b},以及最后的\gamma_{p}

—————————————————————————–

上述方法的好处在于可以投影很少的灰度图像得到系统的gamma值。在得到gamma值后,可以根据灰度响应函数,建立LUT,后面再对理论的灰度图像进行校正,最后让投影仪投射到待测物体上,那么摄像机获取到的图像就是经过gamma校正后的灰度图像了。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150597.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月22日 下午9:36
下一篇 2022年6月22日 下午9:36


相关推荐

  • ubuntu安装python3_在Ubuntu中安装Python3

    ubuntu安装python3_在Ubuntu中安装Python3原博文2012-09-2517:15−首先,通过命令行安装Python3.2,只需要在终端中通过命令行安装即可:sudoapt-getinstallpython3一路yes。因为Ubuntu很多底层采用的是Python2.*,Python3和Python2是互相不兼容的,所以此时不能卸载Python2,需要将默认Pyth…154567相关推荐2017-12-2722:00…

    2022年6月23日
    43
  • linux重启网卡命令_linux网卡服务起不来怎么办

    linux重启网卡命令_linux网卡服务起不来怎么办修改了ip,如果没有重启网卡,一般是没有奏效的。Linux下网卡重启的命令为:/etc/init.d/networkrestart或者是/etc/init.d/networkingrestart或者重启网络服务:servicenetworkrestart在ubuntu下指定控制哪个网卡(其中eth0为网卡名):sudoifdowneth…

    2022年10月17日
    5
  • GPT-4o 画图封神!原生生图实测,强到窒息!附手把手教程

    GPT-4o 画图封神!原生生图实测,强到窒息!附手把手教程

    2026年3月15日
    3
  • golang练手小项目系列(6)-使用map实现set

    golang练手小项目系列(6)-使用map实现set问题描述go没有提供set数据结构,请用map实现set要点需要支持方法:Add添加元素Remove删除元素Cardinality获取Set长度Clear清空SetContains检测元素是否在Set中Pop()随机删除一个元素并返回被删除的元素ToSlice()[]interface{}转换成slice返回拓展Clone复制SetDi…

    2025年6月30日
    5
  • JMeter性能测试,完整入门篇

    JMeter性能测试,完整入门篇原文转自 https blog csdn net lovesoo article details ApacheJMeter 是一款纯 java 编写负载功能测试和性能测试开源工具软件 相比 Loadrunner 而言 JMeter 小巧轻便且免费 逐渐成为了主流的性能测试工具 是每个测试人员都必须要掌握的工具之一 本文为 JMeter 性能测试完整入门篇 从 Jmeter 下载安装到编写一个完整

    2026年3月20日
    2
  • 软件开发模型总结归纳(瀑布模型、螺旋模型、迭代模型、增量模型、敏捷模型)

    软件开发模型总结归纳(瀑布模型、螺旋模型、迭代模型、增量模型、敏捷模型)文章目录 0 软件的生命周期 1 瀑布模型 2 螺旋模型 3 迭代模型 4 增量模型 5 敏捷模型 0 软件的生命周期 软件的生命周期是指从软件产品的设想开始到软件不在使用而结束的时间 软件的生命周期分为 6 个阶段 即需求分析 计划 设计 编码 测试 运行维护 1 瀑布模型 瀑布模型是最早出现的软件开发模型 是所有其他软件开发模型的基础框架 与软件的生命周期不同的是 它缺少了软

    2025年9月1日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号