【数字图像处理系列三】图像增强:线性、 分段线性、 对数、 反对数、 幂律(伽马)变换、直方图均衡 您所在的位置:网站首页 线性效果图 【数字图像处理系列三】图像增强:线性、 分段线性、 对数、 反对数、 幂律(伽马)变换、直方图均衡

【数字图像处理系列三】图像增强:线性、 分段线性、 对数、 反对数、 幂律(伽马)变换、直方图均衡

2023-12-05 09:10| 来源: 网络整理| 查看: 265

本系列python版本:python3.5.4 本系列opencv-python版本:opencv-python3.4.2.17 本系列使用的开发环境是jupyter notebook,是一个python的交互式开发环境,测试十分方便,并集成了vim操作,安装教程可参考:windows上jupyter notebook主题背景、字体及扩展插件配置(集成vim环境)

前言:原创不易,转载请告知并注明出处!扫码关注公众号【机器学习与自然语言处理】,定期发布知识图谱,自然语言处理、机器学习等知识,添加微信号【17865190919】进讨论群,加好友时备注来自CSDN。 在这里插入图片描述

上文【数字图像处理系列二】基本概念:亮度、对比度、饱和度、锐化、分辨率 中我们一起学习了数字图像概念和形成原理,并在实践和对比中一起分析了图像亮度、对比度、饱和度、锐化、分辨率等属性。图像的基础知识介绍完毕,此后将开始着重介绍数字图像处理和分析,本文便从 图像灰度变换增强 开始说起,这在图像预处理中也可以说是很重要的了,杠~~

老规矩,先上图: 在这里插入图片描述

经过图像增强后的图片: 在这里插入图片描述

一、图像增强知识预热 1、为啥要做图像增强

在图像形成的过程中,存在很多因素影响图像的清晰度,列举几个常见影响图像清晰度因素如下:

光照不够均匀,这会造成图像灰度过于集中由CCD(摄像头)获得图像时金A/D(数模)转换、线路传送时产生噪声污染,影响图像质量

因此必须在图像处理分析之前对图像的质量进行改善,改善方法分为两类:

图像增强图像复原

图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征,它的目的主要是提高图像的可懂度; 图像复原技术与增强技术不同,它需要了解图像质量下降的原因,首先要建立"降质模型",再利用该模型,恢复原始图像。

本文便重点研究一下图像增强技术,图像增强主要是以对比度和阈值处理为目的,且都是在空间域进行的操作。我们假设 f(x,y) 是输入图像,g(x,y) 为经过增强变换处理后的图像,则有:

这里的 T 便是在点 (x,y) 的邻域定义的关于 f 的算子,根据邻域的不同,图像增强分为两种:

邻域处理技术点处理技术,又称 图像灰度变换增强技术,本文重点将讨论 2、图像增强邻域处理技术

空间域处理 g(x,y) = T[f(x, y)] 中点 (x,y) 便是图像的像素坐标,而邻域是中心在 (x,y) 的矩形,其尺寸比图像要小得多,如下图所示: 在这里插入图片描述

图像增强邻域处理技术的核心思想便是: 当对 (x,y) 做变换时,变换算子 T 是对以 (x,y) 为中心的邻域作用然后得出变换结果,如上图,假如该邻域的大小是3*3的正方形,算子 T 定义为 计算该邻域的平均灰度,如 (x,y) = (100,200),则 g(100,200) 的结果便是计算 f(100,200) 和它的8个邻点的和,然后在除以9 (即是由邻域包围的像素灰度的平均值),当然这种邻域处理思想在后续的图像滤波处理中是基本应用,如均值滤波、中值滤波和高斯滤波等都是采用邻域处理技术。

3、图像增强点处理技术

点处理技术,既是当邻域的大小为 1*1 时,此时 g 的值仅仅取决于点 (x,y) 处的值,此时 T 称为灰度变换函数,此种图像增强方式就是图像灰度变换增强,定义公式如下:

其中 s 是变换后的像素,r 是变换前的像素,此后讨论的线性变换、 分段线性变换、 对数变换、 反对数变换、 幂律(伽马)变换均是基于此公式为基础进行的,因此图像灰度变换便是基于点的增强方式,它将每一个像素的灰度值按照一定的数学变换公式转换为一个新的灰度值,达到增强图像的效果。

二、图像灰度变换增强

说在前面: 线性变换和分段线性变换一般对灰度图像进行处理,也可以直接对RGB图像进行处理;对数变换、 反对数变换、 幂律(伽马)变换则是直接对RGB图像进行相应的图像增强,达到自己想要的结果

如果对RGB图像进行变换之后需要多两部操作:(1) 图像归一化、(2) 图像像素值类型转化为np.uint8,需要用到两个函数,在这里做简单介绍,后续示例程序中将会使用到:

函数cv2.normalize()

#数字图像归一化操作 cv2.normalize(src, dst, alpha, beta, norm_type, dtype, mask) → dst

参数解释:

src: 原图像对象

dst: 经过转化后的图像对象

alpha: 归一化后灰度像素最小值,一般为0

beta: 归一化后灰度像素最大值,一般为255

norm_type: 归一化的类型,可以取以下值

(1) cv2.NORM_MINMAX: 数组的数值被平移或缩放到一个指定的范围,线性归一化,一般较常用 (2) cv2.NORM_INF:此类型的定义没有查到,根据OpenCV 1的对应项,可能是归一化数组的C-范数(绝对值的最大值) (3) cv2.NORM_L1 : 归一化数组的L1-范数(绝对值的和) (4) cv2.NORM_L2: 归一化数组的(欧几里德)L2-范数

dtype: 为负数时,输出图像像素值的type与输入相同,一般使用默认

mask: 操作掩膜,用于指示函数是否仅仅对指定的元素进行操作,一般使用默认

函数cv2.convertScaleAbs()

#该函数较简单,便是将原图像的像素值均转化成类型为np.uint8 dst = cv2.convertScaleAbs(src) 1、线性变换

图像增强线性变换主要可以对图像的对比度和亮度进行调整,线性变换公式如下:

参数 a 影响图像的对比度,参数 b 影响图像的亮度,具体分为可分为以下几种情况:

a>1: 增强图像的对比度,图像看起来更加清晰a


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有