数组图像处理:直方图均衡化
证明:
设r是灰度级,s是均衡化后的灰度级,范围是0-L(L一般是255), 对图像进行统计,设均衡化前的灰度级的随机变量为X,概率密度函数为,均衡化后的随机变量为Y,概率密度函数为。我们通过统计已知X的概率分布,即已经知道了,设变换函数为s = T(r), 那么可以通过知道随机变量Y的分布函数
对(1)式两边求导的
因为均衡化后要求随机变量Y是均匀分布的,所以 = 1/L,带入(2)式得ds = L*dr ,对两边积分得
对于离散的随机变量,积分换成求和便是了
虽然直方图均衡化可能会出现“简并”现象,即频率较小的几个灰度级可能合并成一个灰度级,但是灰度级间隔拉大了,频率较大的灰度级被映射到间隔距离更大的灰度级,增强了图像对比度。
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;int main()
{Mat src;src = imread("f:\\图片\\小包总.jpg");if (src.data){int b[256] = { 0 }, g[256] = { 0 }, r[256] = { 0 }; //定义数组统计bgr通道的灰度值//统计频数Mat_<Vec3b>::iterator it_b = src.begin<Vec3b>();Mat_<Vec3b>::iterator it_e = src.end<Vec3b>();for (Mat_<Vec3b>::iterator it = it_b; it != it_e; it++){b[(*it)[0]]++;g[(*it)[1]]++;r[(*it)[2]]++;}//均衡化int m_size = src.rows*src.cols;double sum[3] = { 0 };for (int i = 0; i < 256; i++){sum[0] += b[i];b[i] = (sum[0] / m_size) * 255;sum[1] += g[i];g[i] = (sum[1] / m_size) * 255;sum[2] += r[i];r[i] = (sum[2] / m_size) * 255;}//创建均衡化后的图像Mat dst = src.clone();Mat_<Vec3b>::iterator it_b1 = dst.begin<Vec3b>();Mat_<Vec3b>::iterator it_e1 = dst.end<Vec3b>();for (Mat_<Vec3b>::iterator it1 = it_b1, it = it_b; it1 != it_e1&&it != it_e; it++, it1++){(*it1)[0] = b[(*it)[0]];(*it1)[1] = b[(*it)[1]];(*it1)[2] = b[(*it)[2]];}namedWindow("原图像");namedWindow("均衡化后");imshow("原图像", src);imshow("均衡化后", dst);}waitKey(0);return 0;
}
数组图像处理:直方图均衡化相关推荐
- [图像处理] 直方图均衡化原理 - 数学推导
直方图均衡化 效果 代码 import cv2 as cv import numpy as np import matplotlib.pyplot as pltsrc = cv.imread(&quo ...
- 图像处理-直方图均衡化
个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-11.html 概念 在统计学中,直方图(英语:Histogra ...
- 详细解析图像处理 直方图均衡化计算
什么是直方图均衡化 看一个图了解一下什么是直方图均衡化: 第一个图灰度都集中在左边,整体图像较暗 第二个图灰度都集中在右边,整体图像较亮 第三个图灰度都集中在中间,整体图像适中,但是雾蒙蒙的并不清晰 ...
- 图像直方图均衡化c语言程序,数字图像处理——直方图均衡化
1.相关了解 直方图均衡化又称为直方图平坦化.直方图均衡化的基本思想是将原始图像的不均衡的直方图变换为均匀分布的形式.即将输入图像转化为在每一灰度级上都有相同的像素点数(即输出的直方图是平坦的,其分布 ...
- 图像处理 直方图均衡化
直方图均衡化的作用和优势: 作用:这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候.通过这种方法,亮度可以更好地在直方图上分布.这样就可以用于增强局部的对比度而不 ...
- 图像处理直方图均衡化
直方图均衡化 简介 直方图均衡化(Histogram Equalization)是一种增强图像对比度(Image Contrast)的方法,其主要思想是将一副图像的直方图分布变成近似均匀分布,从而增强 ...
- 数字图像处理 直方图均衡化 MATLAB实验
一.原理 直方图均衡化是通过对原图像进行某种变换使原图像的灰度直方图修正为均匀的直方图的一种方法. 二.步骤 ①读入原图像huafen.jpg,并显示图像及其直方图: ②对图像进行直方图均衡化处理,并 ...
- 数字图像处理——直方图均衡化
直方图均衡化 直方图均衡化(Histogram equalization)是一种常用的灰度变换方法. 基本原理 直方图均衡化的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行 ...
- (学习笔记)图像处理——直方图均衡化(HE)
文章目录 前言 原理 步骤 优缺点 改进 自适应均衡化(AHE) 限制对比度的自适应直方图均衡化(CLAHE) 实现 前言 利用直方图将图像对比度进行调整,可用来增强局部对比度而对其他部分对比度不受影 ...
- 直方图均衡化(HE, AHE, CLAHE)
Copyright © 2021 @Linyer. All Rights Reserved. 参考资料: @刘永雄要好好写博客 的文章 直方图均衡化与Matlab代码实现 @云时之间 的文章 数字图像 ...
最新文章
- 将表里的数据批量生成INSERT语句的存储过程 增强版
- PHP 页面编码声明方法详解(header或meta)
- 消费升级背景下零食行业发展报告_趋势丨零食行业进入4.0时代
- 转:linux svn常用命令
- ELK学习10_ELK系列--实时日志分析系统ELK 部署与运行中的问题汇总
- 手把手教你发布一个Python包
- 将矩阵转为一行_LeetCode 力扣官方题解 | 861. 翻转矩阵后的得分
- SQL count和case when配合统计给定条件下不重复的记录数
- 拼图java监听器,Android 简单的实现滑块拼图验证码功能
- 梦想与现实之间的距离
- Android 内核的开发“顽疾”如何解决?
- rdlc mysql_RDLC 报表开发
- 不会英语学习c语言和java,我想学电脑JAVA,但不懂英文,可以学吗?怎么才能学好呢...
- C# WebService获取天气信息
- 高可用架构系列之京东亿级商品详情页架构演进技术解密
- [私人] T460p上运行orbit_js报ERR_NO_ICU的问题
- git-svn使用教程:git与svn进行同步
- 大学计算机实践教程raptor,大学计算机实践教程.docx
- 修改linux开机启动界面,修改树莓派的开机启动画面,
- 狂神JUC——CAS