擅长:python、mysql、java
<p>我找不到OpenCV函数,但我找到了指南:
<a href="https://docs.opencv.org/3.4/d3/dc1/tutorial_basic_linear_transform.html" rel="nofollow noreferrer">https://docs.opencv.org/3.4/d3/dc1/tutorial_basic_linear_transform.html</a>
它说你可以这样调节对比度和亮度:</p>
<pre><code>new_image = old_image * contrast_coeff + brightness_coeff
</code></pre>
<p>但是,我没有使用它,因为你可以注意到,<strong>如果你只想改变对比度,它不会同时使暗像素变暗而亮像素变亮。在</p>
<p>之前我使用了tensorflow的对比度调整,所以我使用它的公式:</p>
^{pr2}$
<p>另外,您可能希望将结果转换为int,所以最好将小于0和大于1的值截断。您可以将其规格化,也可以只剪辑:</p>
<pre><code>new_image = np.clip(new_image, a_min=0., a_max=1.) # cut values under 0 and over 1
</code></pre>
<p>如您所见,所有这些都不是使用OpenCV,而是使用NumPy,所以我希望它适合您的需要。在</p>
<p>你也可以在那里读到不同的对比度公式:<a href="https://en.wikipedia.org/wiki/Contrast_(vision)" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Contrast_(vision)</a></p>