94341090480d035ec381fd92ff81c217
Learning OpenCV with iOS: 图像亮度和对比度

一、前言

上一篇我们讲解了OpenCV的图像混合与ROI。本篇主要向大家介绍下图像变换的调整亮度和对比度。按惯例,先来一张效果图。

魔铠变身

魔铠变身

二、图像变换

算子

一般的图像处理算子都是一个函数,它接受一个或多个输入图像,并产生输出图像。

单输入
g(x) = h(f(x))
多输入
g(x) = h(f0(x)......fn(x))

根据算子的不同,图像变换分为两大类:

  • 像素变换 - 点操作
  • 邻域操作 - 区域

像素变换

这类变换操作的是点。根据输入像素值(有时可加上某些全局信息或参数)计算相应的输出像素值。
这类算子包括亮度和对比度调整 ,以及颜色校正和变换。

邻域操作

这类变换操作的是区域(大块的,非点操作)。
这类算子包括卷积、特征提取、梯度计算、模糊等。
后续文章中我们将一一讲解,这里不再赘述。

三、调整图像亮度和对比度

g(i, j) = αf(i,j) + β  其中α>0,β是增益变量
  • f(i,j) 表示源图像像素
  • g(i,j) 表示输出图像像素

一些理解

  • 亮度越亮其实看起来越“白”,在图像处理中就是像素值越靠近255。β变量是个增益变量,β越大,像素值就越靠近255,自然就提高了亮度。所以,β常常被用来控制图像的亮度

  • α对像素的操作是乘法,乘法会”扩大差距“,打个比方:1x10 = 10, 2x10 = 20。改变α会将像素值的差距扩大,也就是改变了对比度。所以,α常常被用来控制图像的对比度

魔铠变身

魔铠变身

魔铠变身

top Created with Sketch.