ISO调整和亮度公式的代码实现

Posted

技术标签:

【中文标题】ISO调整和亮度公式的代码实现【英文标题】:Code Implementation for ISO adjustment and Brightness Formula 【发布时间】:2016-02-10 13:39:57 【问题描述】:

大家好,1。我拍摄了设置 ISO-Auto 的图像(意味着 ISO 将根据照明环境设置)。 2. 我们在图像文件的属性中有亮度值。问题是,我需要使用一些固定阈值来在我的算法中提取对象。显然,要使固定阈值起作用,环境应该是统一的。因此,以不同 ISO 值拍摄的图像不能最适合我的算法。 我需要使图像(以不同 ISO 拍摄)以最适合我的算法。 示例:我们知道 ISO-200 将比 ISO-100 亮两倍。但是为了抵消 ISO-200 产生的额外亮度,在应用阈值之前我应该​​对图像进行哪些操作? (我只有在不同 ISO 下拍摄的图像。我不能要求调整光圈或快门速度参数以抵消 ISO-200 与 ISO-100 相比产生的变化。(我必须纯粹使用我的代码来抵消变化)Screenshot Of Image properties window, Brightness value highlighted 图像属性窗口显示亮度值。 Camera Software如何计算此值? (我正在使用 SM-T810 Tab 前置摄像头来完成此任务)。我已经搜索了解决方案。 http://johnlind.tripod.com/science/scienceexposure.html 这个链接很好地解释了亮度值(Bv)。但是公式应用程序没有得到属性中显示的亮度值。 这个链接是亮度值计算的解决方案吗? 请帮助我找到解决此问题的方法。 提前致谢。

【问题讨论】:

【参考方案1】:

你想达到什么目的?

如果您拍摄一张使用 ISO-100 的图像和另一张使用 ISO-200 的图像,则来自 Wikipedia

https://en.wikipedia.org/wiki/APEX_system#Use_of_APEX_values_in_Exif

亮度值为

B(...) = log_2 ( A^2 / ( T S N ) ),

其中ATSN 分别是光圈值、快门速度、ASA 速度和缩放常数。

仅作为 ASA 速度的函数

B( S ) = constant - log_2( S ),

所以拍摄的场景

B( 200 ) = constant - log_2( 2 * 100 ) = B(100) - 1

是一个 stop 不明亮。换句话说,如果亮度下降一档,那么为了补偿你必须将 ASA 速度或快门速度加倍(或将光圈打开 1.4)。

Photoshop 将此调整为“曝光”供您使用。

但这只有在场景照明不变的情况下才有意义。否则,您只是在提取亮点本身,而不是对象。

【讨论】:

@mailactual:感谢您回答我的问题。例如,与 ISO-100 相比,ISO-200 看起来更亮。有什么数学方法可以证明 200 比 100 亮吗?如果是这样,那么,我可以使用该数学关系消除 200 中的亮度。我的目标是,结果图像应该被带到一个固定的 ISO(比如 ISO-100),尽管图像是在任何 ISO 上拍摄的 @Pavan,你不需要我说的亮度值,你只需将曝光调整一档(还记得摄影课吗?)。只需了解曝光在 Photoshop 或相机制造商软件中的工作原理即可。 我正在搜索这些参数的计算方式。我的一个疑问是,上面问题中附加的屏幕截图中的亮度值(在图像文件的属性窗口中),是公式中的“B”值,你指的是吗?请回复@mainactual @Pavan,你有快门速度、光圈值和 ISO 读数吗?不要在屏幕截图中看到它们。 @Pavan, B=log_2( 2.2^2/( 1/33 * 100 * 0.3 ) ) = 2.41 足够接近。最后一个常数,见***。

以上是关于ISO调整和亮度公式的代码实现的主要内容,如果未能解决你的问题,请参考以下文章

屏幕后处理——亮度.饱和度.对比度

调整屏幕亮度,调整字体大小

图像亮度自适应调整

OpenCV 调整图像亮度与对比度

OpenCV 调整图像亮度与对比度

arduino电位器调整led灯颜色