当前位置: 首页 > news >正文

直方图均衡化算法

直方图均衡化是一种图像处理算法,通过调整图像的灰度级分布,增强图像的对比度和细节。下面是直方图均衡化算法的基本步骤:

  1. 统计原始图像的灰度直方图:遍历整个图像,计算每个灰度级出现的频次。

  2. 计算累积直方图:对灰度直方图进行累加,得到每个灰度级及其之前所有灰度级的累积频次。

  3. 计算映射函数:将累积直方图归一化到期望的灰度范围(通常是0到255),得到一个映射函数。

  4. 应用映射函数:遍历原始图像,根据映射函数将每个像素的灰度值转换为新的灰度值。

  5. 生成均衡化后的图像:用转换后的灰度值替换原始图像中的相应像素值。

通过直方图均衡化,图像的灰度级分布会更加平坦,从而增加图像的对比度。这个过程可以使得图像细节更加清晰,使得暗部和亮部的细节都更容易观察到。需要注意的是,直方图均衡化可能会改变图像的整体色调,因此在应用之前,需要根据具体需求进行调整和评估。

以下是一个简单的直方图均衡化算法的例程,以Python语言为例:

import cv2
import numpy as npdef histogram_equalization(image):# 统计原始图像的灰度直方图hist, bins = np.histogram(image.flatten(), 256, [0,256])# 计算累积直方图cdf = hist.cumsum()cdf_normalized = cdf * hist.max() / cdf.max()# 计算映射函数mapping = np.interp(image.flatten(), bins[:-1], cdf_normalized)# 应用映射函数,生成均衡化后的图像equalized_image = mapping.reshape(image.shape).astype(np.uint8)return equalized_image# 读取原始图像
image = cv2.imread('input.jpg', 0)  # 灰度图像读取# 执行直方图均衡化
equalized_image = histogram_equalization(image)# 显示原始图像和均衡化后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Equalized Image', equalized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

http://www.lryc.cn/news/208946.html

相关文章:

  • 通过el-tree 懒加载树,创建国家地区四级树
  • Power BI 实现日历图,在一张图中展示天、周、月数据变化规律
  • C/C++计算表达式值 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • XTU-OJ 1258-矩阵
  • Django token 认证原理与实战
  • JVM虚拟机:Java对象的头信息有什么?
  • 场效应管器件
  • javascript之for循环介绍
  • 【机器学习可解释性】3.部分依赖图
  • 在CARLA中手动开车,添加双目相机stereo camera,激光雷达Lidar
  • 【VUE】ArcoDesign之自定义主题样式和命名空间
  • TVRNet网络PyTorch实现
  • opencv之坑(八)——putText中文乱码解决
  • nrf52832 开发板入手笔记:资料搜集
  • PHP如何批量修改二维数组中值
  • Python 算法高级篇:归并排序的优化与外部排序
  • LeetCode--1991.找到数组的中间位置
  • 物联网数据采集网关连接设备与云平台的关键桥梁
  • 专家级数据恢复:UFS Explorer Professional Recovery Crack
  • 2023/10/23 mysql学习
  • 软考系统架构师知识点集锦六:项目管理
  • MacOS系统Chrome开发者模式下载在线视频
  • uniapp v3+ts 使用 u-upload上传图片以及视频
  • 为什么虚拟dom会提高性能?
  • 2015年亚太杯APMCM数学建模大赛A题海上丝绸之路发展战略的影响求解全过程文档及程序
  • js中HTMLCollection如何循环
  • Kafka - 3.x 副本不完全指北
  • 二分归并法将两个数组合并
  • ROS自学笔记十六:URDF优化_xacro文件
  • XMLHttpRequest拦截请求和响应