空间域图像增强之直方图均衡的python代码实现——冈萨雷斯数字图像处理

原理

直方图:
图像的直方图是一个图像中像素强度值分布的图表。
对于灰度图像,直方图展示了每个灰度级出现的频率。
直方图均衡步骤:

计算累积分布函数(CDF):首先,计算图像的直方图,然后基于这个直方图生成累积分布函数。CDF是每个强度值及其以下强度值出现频率的累加。
归一化CDF:将CDF归一化到[0, 255](对于8位图像)的范围内,以便它可以映射到标准的灰度级。
映射新的强度值:使用归一化的CDF来映射每个像素的新强度值。
效果:

直方图均衡后,图像的直方图将更加均匀分布。
这通常会增加图像的对比度,特别是在图像的原始直方图中占主导地位的区域。
在这里插入图片描述
应用
直方图均衡广泛应用于医学图像处理、卫星图像增强、以及其他需要改善图像对比度的场景。虽然它是一个强大的工具,但在某些情况下,如包含非常高或非常低的灰度级集中的图像,它可能不会产生理想的结果。在这些情况下,可能需要采用更为复杂的方法,如自适应直方图均衡。

python代码,实现如下图所示的结果:
在这里插入图片描述

提示

用cv2.calcHist函数计算图像的直方图,调用该函数的示例代码如:hist = cv2.calcHist([img], [0], None, [256], [0, 255])。之后可以用cv2.normalize函数将直方图归一化,调用该函数的示例代码如:cv2.normalize(hist, hist)。最后可以用函数cv2.equalizeHist对图像执行直方图均衡化操作,调用该函数的示例代码如:img_equ = cv2.equalizeHist(img)。对暗、亮、低对比度、高对比度四种图像分别做直方图均衡化并观察前后的直方图。注意,plt.imshow会自动扩展灰度图的值域范围,所以为了正确显示前三种视觉效果不佳的图像,需要在imshow时加上参数vmin和vmax,如:axs[i, j].imshow(img, vmin=0, vmax=255, cmap=‘gray’)。直方图用plot而非imshow显示。

代码实现

import cv2
import numpy as np
from matplotlib import pyplot as pltimg_dark = cv2.imread('Fig0316(4).tif', 0)
img_light = cv2.imread('Fig0316(1).tif', 0)
img_low_con = cv2.imread('Fig0316(2).tif', 0)
img_high_con = cv2.imread('Fig0316(3).tif', 0)
img_ori_list = [img_dark, img_light, img_low_con, img_high_con]
img_list = []
hist_list = []for img in img_ori_list:img_list.append(img)hist = cv2.calcHist([img], [0], None, [256], [0, 255])cv2.normalize(hist, hist)hist_list.append(hist)img_equ = cv2.equalizeHist(img)img_list.append(img_equ)hist_equ = cv2.calcHist([img_equ], [0], None, [256], [0, 255])cv2.normalize(hist_equ, hist_equ)hist_list.append(hist_equ)_, axs = plt.subplots(4, 4)for i in range(4):for j in range(2):axs[i, j*2].imshow(img_list[i*2+j], vmin=0, vmax=255, cmap='gray')axs[i, j*2].axis('off')axs[i, j*2+1].plot(hist_list[i * 2 + j])plt.savefig('hist.jpg')
plt.show()

结果展示

111111

总结

直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
直方图均衡化通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景噪声的对比度并且降低有用信号的对比度。直方图均衡技术将原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布, 由于其算法简单, 无需借助外来因素的参数设置,可以自成系统的运行, 有效地增强图像对比度, 是一种常用的图像增强方法. 一直以来, 直方图均衡技术受到各个领域的重视, 比如在消费类电子产品邻域, 在均衡图像的同时希望保持图像的亮度信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/313432.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直接形式2(三阶)补偿器

直接形式2(三阶)补偿器 DF23 myCtrl DF23_DEFAULTS;

收入支出记录,对需要的账目明细进行颜色标记

面对繁杂的账单和财务数据,你是否曾为记账而感到苦恼?别担心,我们为你带来了一款全新的记账软件——晨曦记账本,这不仅仅是一个简单的记账工具,更是你财务管理的得力助手。 所需工具: 一个【晨曦记账本】…

计算机网络(1)

计算机网络(1) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 计算机网络和因特网(1)因特网概念解读服务常见的服务 协议网络边缘特点强调 网络核心特点强调 小程一言 我的计算机网络专栏,是自己在计算机网络…

阶段十-分布式-docker虚拟化容器

第一章 Docker简介 1.2 节 Docker理念 Docker是基于Go语言实现的云开源项目;通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装&#xf…

Spring Boot案例-员工分页查询

准备工作: 数据库的连接: #驱动类名称 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver #数据库连接的url spring.datasource.urljdbc:mysql://localhost:3306/tlias #连接数据库的用户名 spring.datasource.usernameroot #连接数据库的密码 spring.datasource.p…

C++初阶——权限与继承

目录 一、C权限方面的问题 1.访问权限 2.继承机制 二、Cconst引用 const引用有以下几个特点 临时对象引用 常量引用成员变量 二、c引用空间相关问题 三.auto 一、C权限方面的问题 【C入门】访问权限管控和继承机制详解_权限继承功能-CSDN博客文章浏览阅读840次。(2)但…

Android 跨进程之间通信(IPC)方式之ContentProvider

Android 跨进程之间通信 Android 跨进程之间通信(IPC)方式之BroadcastReceiverAndroid 跨进程之间通信(IPC)方式之ContentProvider 文章目录 Android 跨进程之间通信前言一、ContentProvider 是什么?二、如何利用ContentProvider跨进程通信1.创建自定义ContentProv…

在宝塔Linux中安装Docker

前言 帮助使用宝塔的用户快速上手docke的安装 📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 ​​​​ 🌟在这里,我要推荐给大家我的专栏《Docker》。🎯&#x1f3af…

简单Diff算法

简单Diff算法 渲染器的核心 Diff算法 解决的问题 比较新旧虚拟节点的子节点,实现最小化更新。 虚拟节点key属性的作用 就像虚拟节点的“身份证号”,在更新时,渲染器会通过key属性找到可复用的节点,然后尽可能地通过DOM移动操…

软件测试/测试开发丨Linux 数据处理三剑客学习笔记

一、Linux 三剑客之 grep 1、 内容检索 获取行(单行) grep pattern file获取内容 grep -o pattern file获取上下文 grep -A -B -C pattern file 2、 文件检索 递归搜索 grep pattern -r dir/展示匹配文件名 grep -H 111 /tmp/1只展示匹配文件名 grep …

[情商-3]:理解男女思维方式、心理诉求、情绪诉求的差别

目录 前言: 一、感性思维 VS 理性思维 1.1 感性思维 VS 理性思维 1.2 情绪 VS 事情本身 1.3 情绪感知 VS 逻辑推理 二、情绪的表达 2.1 表达方式 2.2 表达途径 三、不明说的情绪和倾诉诉求:隐藏在情绪表达方式之下的情绪与情绪诉求 3.0 快乐愉…

常见网络设备及功能详解

网络设备 - 交换机 交换机:距离终端用户最近的设备,用于终端用户接入网络、对数据帧进行交换等。 交换机的功能: 终端设备(PC、服务器等)的网络接入二层交换(Layer 2 Switching) 网络设备 - …