目录

一,何为灰度图像?

二,何为灰度变换?

三,灰度变换算法总结

①,对数变换

②,指数变换

③ gamma变换

④ 直方图均衡化


一,何为灰度图像?

定义:RGB三色只有一种采样的图片,由白色到黑色按比例分成不同的灰度等级,在物体的边缘呈现灰度的不连续性,图像分割就是基于这个原理。灰度就是没有色彩,RGB色彩分量全部相等。如果是一个二值灰度图象,它的象素值只能为0或1,我们说它的灰度级为2。用个例子来说明吧:一个256级灰度的图象,如果RGB三个量相同时,如:RGB(100,100,100)就代表灰度为100,RGB(50,50,50)代表灰度为50。

二,何为灰度变换?

定义:将一个像素点的灰度值按照算法数学公式转换成一个新的灰度值,使原来图像的某些部分区域特征增强,使图片变清晰。

三,灰度变换算法总结

①,对数变换

由对数的函数图像可知,对数变换提升低亮区域,压缩高亮区域,使低亮区域的特征更加突出明显

公式:

C :常量  src:原图像

原图像 

 变换后的图像

 通过上图我们发现 原本暗淡的礁石变得明亮清晰起来,树丛中的阴影也少了许多

代码:

def logGray(img, c, showPlt):newImg = c * np.log(1.0 + img)if showPlt:x = np.arange(0, 256, 0.01)y = c * np.log(1 + x)plt.plot(x, y, 'r', linewidth=1)plt.rcParams['font.sans-serif'] = ['SimHei']plt.title(u'对数变换函数')plt.xlim(0, 255), plt.ylim(0, 255)plt.show()newImg = np.uint8(newImg)return newImg

②,指数变换

由指数函数可知,图片低亮度区域将被压缩,高亮度区域将被扩展

公式:

原图像

变换后的图像

 代码:

def indexGray(img, c, b, a, showPlt):newImg = np.array(b ** (c * (img - a)) - 1,dtype=np.uint8)if showPlt:x = np.arange(0, 256, 0.01)y = b ** (c * (x - a)) - 1plt.plot(x, y, 'r', linewidth=1)plt.rcParams['font.sans-serif'] = ['SimHei']plt.title(u'指数变换函数')plt.xlim(0, 255), plt.ylim(0, 255)plt.show()return newImg

③ gamma变换

Gamma变换用来图像增强,其提升了暗部细节,简单来说就是通过非线性变换,让图像从暴光强度的线性响应变得更接近人眼感受的响应,即将漂白(相机曝光)或过暗(曝光不足)的图片,进行矫正。

gamma>1, 较亮的区域灰度被拉伸,较暗的区域灰度被压缩的更暗,图像整体变暗;
gamma<1, 较亮的区域灰度被压缩,较暗的区域灰度被拉伸的较亮,图像整体变亮;

公式:

 代码:

def gammaGray(img, c, r, showPlt):newImg = c * img ** rlut = np.zeros(256, dtype=np.float32)for i in range(256):lut[i] = c * i ** routput_img = cv2.LUT(img, lut)output_img = np.uint8(output_img + 0.5)if showPlt:x = np.arange(0, 256, 0.01)y = c * x ** rplt.plot(x, y, 'r', linewidth=1)plt.rcParams['font.sans-serif'] = ['SimHei']plt.title(u'gamma变换函数')plt.xlim(0, 255), plt.ylim(0, 255)plt.show()return output_img

④ 直方图均衡化

直方图均衡化增加图像的全局对比,直方图均值化,将低灰度值归并,高灰度值拉伸,当一个图像灰度分布均匀时,图像的整体细节与质量会提升很多

公式:

公式推导:

推导截图源自 直方图均衡化_schwein_van的博客-CSDN博客_直方图均衡化 该大佬博客

步骤:(以灰度深度8为例)

1,统计每个阶级灰度值的数量

2,计算每个阶级灰度值出现的概率 

3,将每个概率的灰度值以前缀和的形式累加 

4,将图片代入计算,p[x,y]*img[x,y]

原图

变换后的图像

 可以明显的发现,太阳表面的光斑纹理更加清晰

代码:

def histogramEqualization(img, RGB=True):newImg = np.zeros((img.shape[0], img.shape[1], 3), dtype=np.uint8)N = img.shape[0] * img.shape[1]BGR = np.zeros((3, 256), dtype=np.float)for i in range(0, img.shape[0]):for j in range(0, img.shape[1]):BGR[0][img[i][j][0]] += 1BGR[1][img[i][j][1]] += 1BGR[2][img[i][j][2]] += 1Pr = BGR / NPs = np.zeros((3, 256), dtype=np.float)for i in range(0, 256):if i == 0:Ps[:, i] = Pr[:, i]else:Ps[:, i] += Ps[:, i - 1] + Pr[:, i]for i in range(0, img.shape[0]):for j in range(0, img.shape[1]):b, g, r = img[i, j, :]newImg[i][j] = [round(Ps[0][b] * 255), round(Ps[1][g] * 255), round(Ps[2][r] * 255)]otherImg = cv2.equalizeHist(cv2.cvtColor(img, cv2.COLOR_BGR2GRAY))return newImg, otherImg

图像处理:灰度变换与图像增强相关推荐

  1. 数字图像处理7:图像增强之灰度变换

    图像处理入门:图像增强之灰度变换 2018年10月28日 15:48:13 M_Z_G_Y 阅读数:42 改善降质图像的方法:1.图像增强:2.图像复原 其中图像增强的主要内容如下: 灰度变换也被称为 ...

  2. 图像处理 --- 4.1 图像增强的点运算

    1. 图像增强的点运算 1.1 概念 图像增强: 采用一系列计数改善图像的视觉效果,或将图像转换成一种更适合于人或机器进行分析和处理的形式. 1.2 图像增强的主要方法 按照图像的作用域来说: 空间域 ...

  3. 数字图像处理 -灰度变换 之 对数变换(Log Transformation)

    本文参考了 以下这篇文章 [数字图像处理]灰度变换--反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割 https://blog.csdn.net/zhoufan900428/article/d ...

  4. 图像处理边缘增强matlab,数字图像处理实验 matlab 图像增强 边缘检测 图像操作.doc...

    数字图像处理实验 matlab 图像增强 边缘检测 图像操作 实验1 点运算和直方图处理 实验目的 1. 掌握利用Matlab图像工具箱显示直方图的方法 2. 掌握运用点操作进行图像处理的基本原理. ...

  5. 传统基本图像处理方法:图像增强(灰度变换、直方图增强、空间域滤波、频率域滤波)、图像分割、图像配准等

    图像处理设计主要有以下几种处理:图像增强(灰度变换.直方图增强.空间域滤波.频率域滤波).图像分割.图像配准等等. 图像增强: 图像增强作为基本的图像处理技术,目的在于通过对图像进行加工使其比原始图像 ...

  6. 图像处理入门:图像增强之灰度变换

    改善降质图像的方法:1.图像增强:2.图像复原 其中图像增强的主要内容如下: 也有人将空间域变换划分为: 灰度变换也被称为图像的点运算(只针对图像的某一像素点)是所有图像处理技术中最简单的技术,其变换 ...

  7. 基于灰度变换的图像增强

    再明确几个概念 1,灰度:对于通常所谓的黑白图像,把黑色和白色之间按对数关系分为若干等级称为灰度.灰度分为256阶,用灰度表示的图像称作灰度图.在图像中用0~255表示,0是全黑,255是全白 2.对 ...

  8. 数字图像处理实验三图像增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的 感性认识,巩固所学的图像增强的理论知识和相 关算法. (2)熟练掌握直方图均衡化和直方图规定化的计算过 程. (3)熟练掌握空域滤波中常 ...

  9. 数字图像处理 - 灰度变换与空间滤波

    目录 背景知识 灰度变换和空间滤波基础 一些基本的灰度变换函数 图像反转 对数变换 幂律(伽马)变换 分段线性变换函数 对比度拉伸 灰度级分层 比特平面分层 直方图处理 直方图均衡 空间滤波基础 空间 ...

  10. 直接灰度变换法matlab,数字图像处理-灰度变换(附MATLAB代码)

    目录 图像增强 1.灰度变换 (1)线性变换 (2)分段线性变换 (3)非线性灰度变换 2.直方图修正法 (1)直方图均衡化 (2)直方图规定化 图像增强 图像增强的目的:(1)利用一系列技术改善图像 ...

最新文章

  1. RAW 原始套接字 TCP UDP协议解析
  2. linux虚拟用户的配置
  3. python画轨迹曲线-python 自动轨迹绘制的实例代码
  4. css 文字重叠_学习过CSS,那你知道BFC是什么吗?
  5. OpenCV使用模板与遮罩匹配的实例(附完整代码)
  6. Swift中文教程(三)--流程控制
  7. java类功能的模块化电源_Java9模块化指南
  8. 30分钟学会用scikit-learn的基本回归方法(线性、决策树、SVM、KNN)和集成方法(随机森林,Adaboost和GBRT)
  9. Windows C盘清理指北
  10. 网页打开html无法编辑,电脑浏览器网页无法输入文字该怎么办?
  11. 【致远FAQ】A6+Cloud__V1.0_A6+cloud的M3端地址保存提示:not found
  12. 软考- 高级信息系统项目管理师,第一章 信息化与信息系统
  13. 【案例】CRM客户管理系统的登录模型
  14. U盘文件变exe文件
  15. c++initgraph函数_二次函数图像绕其顶点旋转180°后所得图像的解析式
  16. 工业企业产值产量电子台账操作指南(第一版)
  17. JAVA宠物爱心驿站计算机毕业设计Mybatis+系统+数据库+调试部署
  18. 维生素C - 坏血症
  19. 实验四——DPCM编码(1bit、2bit、4bit、8bit量化)
  20. 该怎么学好软件工程这门课?

热门文章

  1. MITO-ID 线粒体膜电位检测试剂盒的作用机制和应用
  2. 关于求两个球相交部分体积计算
  3. 基于uni-app的模板,支持h5,小程序,安卓,ios,request请求封装,全局路由拦截,也可作为项目基础模板使用
  4. 云队友丨专访极飞科技彭斌:人的梦想是摁不住的!
  5. python实现格兰杰因果关系检验
  6. 数字化转型,金融行业的下一个引爆点
  7. 什么软件可以把图片镜像翻转_ios怎么把照片镜面翻转
  8. 32.项目总结--技术点部分
  9. 累计独立访客(UV)不低于 1000 是什么意思,怎么推广呢解决1000呢?
  10. 使用Python进行网站页面开发——Django快速入门