计算机视觉系列教程2-1:图解直方图均衡化原理+Python实战

Posted FrigidWinter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机视觉系列教程2-1:图解直方图均衡化原理+Python实战相关的知识,希望对你有一定的参考价值。


🔥 作者FrigidWinter

🔥 简介:主攻机器人与人工智能领域的理论研究和工程应用,业余丰富各种技术栈。主要涉足:【机器人(ROS)】【机器学习】【深度学习】【计算机视觉】

🔥 专栏



🚀 计算机视觉基础教程说明

章号                                    内容
  0                              色彩空间与数字成像
  1                              计算机几何基础
  2                              图像增强、滤波、金字塔
  3                              图像特征提取
  4                              图像特征描述
  5                              图像特征匹配
  6                              立体视觉


1 点算子

点算子是两个像素灰度值间的映射关系,属于像素的逐点运算,相邻像素不参与运算。点算子是最简单的图像处理手段,如:亮度调整、对比度调整、颜色变换、直方图均衡化等等。

2 线性灰度变换

线性灰度变换表达为:

s k = T ( r k ) = a r k + b s_k=T\\left( r_k \\right) =ar_k+b sk=T(rk)=ark+b

其中 r k r_k rk s k s_k sk分别为输入、输出点像素灰度值。


a > 1 a>1 a>1时,输出图像像素灰度范围扩大,图像对比度增强,当 a < 1 a<1 a<1时反之。这是因为人眼不易区分相近的灰度值,因此若图像灰度值范围较小,观感上细节不够清晰。当 a = 1 a=1 a=1 b ≠ 0 b\\ne0 b=0时,点算子使图像灰度整体上移或下移,即整体变亮或变暗。

3 直方图均衡化

下图再次给出了关于图像对比度的例子

直方图均衡化是以累计分布函数为核心,将原始图像灰度直方图从比较集中的某个灰度区间,非线性地映射为在全部灰度范围内的较均匀分布,从而增强对比度。

下面阐述直方图均衡化的数学原理。首先作原始图像灰度的概率直方图如图

设输入像素灰度值为 r k r_k rk,累计分布函数为
C ( r k ) = 1 n ∑ i = 0 k n i C\\left( r_k \\right) =\\frac1n\\sum_i=0^kn_i C(rk)=n1i=0kni

其中 n i n_i ni为图像中灰度值为 r i r_i ri的像素频数, n n n为图像像素总数。设输出像素灰度值为 s k s_k sk,像素范围为 s m i n − s m a x s_min-s_max sminsmax。期望输出灰度直方图是均匀分布,即

P ( s ) = 1 s max ⁡ − s min ⁡    s min ⁡ ⩽ s ⩽ s max ⁡ P\\left( s \\right) =\\frac1s_\\max-s_\\min\\,\\, s_\\min\\leqslant s\\leqslant s_\\max P(s)=smaxsmin1sminssmax

C ( s k ) = C ( r k ) C\\left( s_k \\right) =C\\left( r_k \\right) C(sk)=C(rk),即得

( C ( r k ) max ⁡ − C ( r k ) min ⁡ ) s k − s min ⁡ s max ⁡ − s min ⁡ + C ( r k ) min ⁡ = C ( r k ) ⇒    s k − s min ⁡ s max ⁡ − s min ⁡ = C ( r k ) − C ( r k ) min ⁡ C ( r k ) max ⁡ − C ( r k ) min ⁡ ⇒    s k − s min ⁡ s max ⁡ − s min ⁡ = C ′ ( r k ) \\left( C\\left( r_k \\right) _\\max-C\\left( r_k \\right) _\\min \\right) \\fracs_k-s_\\mins_\\max-s_\\min+C\\left( r_k \\right) _\\min=C\\left( r_k \\right) \\\\\\Rightarrow \\,\\, \\fracs_k-s_\\mins_\\max-s_\\min=\\fracC\\left( r_k \\right) -C\\left( r_k \\right) _\\minC\\left( r_k \\right) _\\max-C\\left( r_k \\right) _\\min\\\\\\Rightarrow \\,\\, \\fracs_k-s_\\mins_\\max-s_\\min=C'\\left( r_k \\right) (C(rk)maxC(rk)min)smaxsminsksmin+C(rk)min=C(rk)smaxsminsksmin=C(rk)maxC(rk)minC(rk)C(rk)minsmaxsminsksOpenCV-Python实战——直方图均衡化(含大量示例,建议收藏)

计算机视觉:彩色图片的直方图和图片的均衡化

计算机视觉:彩色图片的直方图和图片的均衡化

数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)

直方图均衡化原理与实现

计算机视觉系列教程13:透视几何原理(灭点灭线)+实例分析