在OpenCV中,更改图像的对比度是一项非常基本的任务。通过改变图像对比度,意味着改变每个图像像素的值。可以通过将图像的像素值乘以或除以常数来实现(通过将值小于1的每个像素乘以或除以该值)来完成此更改。
要提高图像的对比度,只需将恒定的正值乘以每个图像像素。
类似地,如果希望降低图像的对比度,则对每个图像像素乘以小于1的恒定正值。
让我们通过将以下提到的矩阵作为像素值在0到255之间的图像矩阵作为假设,并假设该图像的数据类型为CV_8UC3 。
对比度增加:
所以。让我们假设我们希望将图像对比度增加2倍。然后将2乘以每个图像像素值,但是严格禁止超过像素范围,即允许的最大限制为255,并且我们的像素值不应增加255。如果在任何情况下,此图像像素值都超过255,则应仅为其提供最大允许值,而不是新增加的值。
让我们检查一下下面给出的图像矩阵,我们将该值乘以2倍,但是像素值“ 255”并未因将2乘以144而增加到288,应该是288,但这在这里没有发生,因为最大值该图像中的图像像素值允许为255。
降低对比度:
在这里,我们将对比度值降低了0.5倍,因此将0.5乘以输入图像中的每个图像像素,但是唯一重要的是任何像素的值都不应低于最小允许像素。
就像我们的输出图像中的对比度一样,对比度降低了0.5倍。
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。