算法:随机化亮度和对比度值,有约束

Posted

技术标签:

【中文标题】算法:随机化亮度和对比度值,有约束【英文标题】:Algorithm: Randomize Brightness and Contrast Values, With Constraints 【发布时间】:2021-09-09 04:44:19 【问题描述】:

我想对图像进行随机亮度和对比度调整,这样...

brightness = random in range (brightness_min, brightness_max)
contrast = random in range (contrast_min, contrast_max)   
outputImage = inputImage * contrast + brightness;

但是当我这样做时,因为我的应用程序中的亮度和对比度值的范围非常大,我经常会输出一个全白或全黑的图像。

我想要一种算法来选择随机亮度和对比度对,这样:没有输出是纯色(除非已经如此),并且:输出保留了一些可指定的细节量(这部分不太重要)。

我不知道如何用技术术语描述我想要的东西,也不会开始构建解决方案。任何帮助是极大的赞赏。谢谢。

【问题讨论】:

是什么阻止您限制您选择参数(brightnesscontrast)的范围?似乎是解决此问题的最简单方法。 亮度和对比度值由用户设置,为了能够通过单次调整产生极致的效果,必须很大。 【参考方案1】:

假设brightnessinputImageoutputImage 都在相同的范围内,我会将outputImage 的公式更改为

outputImage = (inputImage - averageInputImage) * contrast + brightness;

其中averageInputImageinputImage 值的平均值(平均值、中位数、任何有意义的值)。假设正对比度和具有细节的输入图像,输出应该有一些细节,即使对于高对比度它是交替的白色和黑色。

【讨论】:

以上是关于算法:随机化亮度和对比度值,有约束的主要内容,如果未能解决你的问题,请参考以下文章

随机化快速排序法

c_cpp 【随机化算法】计算π值【7.2.1】

带约束的二部网络保度随机化

随机化算法概述

第六章:随机化(续2)

随机化算法概述