直方图均衡化
来源:互联网 发布:ado.net mysql 编辑:程序博客网 时间:2024/06/07 15:36
直方图均衡化
1、直方图均衡化
直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。假定灰度变换函数为
就是 r 的累积分布函数。
累积分布函数是 r 的函数,并且单调地从 0 增加到 1 ,所以这个变换函数满足
(1)关于 T(r) 在 0 <= r <= 1 内单值单调增加;
(2)在 0 <= r <= 1 内有 0 <=T(r) <= 1 ;
两个条件。
令 Pr(r) 、 Ps(s) 分别为均衡化前和均衡化后的概率密度函数。
2、实现代码
%% 图像的直方图均衡化% 作者:杨宇东% 日期:2014.09.22% 参数:待均衡化的图片的文件名% 输出:均衡化处理之后的图片数组%%function f = MyHistogramEqulization(imgFile)img = imread(imgFile);imshow(img);title('源图片');height = size(img, 1);width = size(img, 2);% 图像中所有的像素的个数numPixel = height * width;% 各个灰度出现的频数frequency = zeros(256, 1);% 各个灰度出现的概率probability = zeros(256, 1);% 统计各个灰度的频数,计算各个灰度的概率for i = 1:height for j = 1:width value = img(i,j); frequency(value + 1) = frequency(value + 1) + 1; probability(value + 1) = frequency(value + 1) / numPixel; endend% 各个灰度的累积分布fPixel = zeros(256, 1);% 各个灰度的累积分布概率pPixel = zeros(256, 1);% 重新定义的灰度值imgNew = zeros(256, 1);% 累积和变量sum = 0;for i = 1:size(probability) sum = sum + frequency(i); fPixel(i) = sum; pPixel(i) = fPixel(i) / numPixel; % 计算映射的灰度值 imgNew(i) = round(pPixel(i) * 255);end% 生成新的图像数组。 uint8 是指生成 8 位图像数组,节约存储空间。f = uint8(zeros(height, width));for i = 1:height for j = 1:width f(i, j) = imgNew(img(i, j) + 1); endendfigure, imshow(f);title('均衡化之后的图片');
0 0
- 直方图均衡化、自适应直方图均衡化
- 直方图均衡化推导
- 直方图均衡化
- 直方图均衡化
- 直方图均衡化
- 直方图均衡化
- 灰度直方图均衡化
- 直方图均衡化
- 直方图均衡化
- 直方图均衡化
- matlab直方图均衡化
- 直方图均衡化
- opencv直方图均衡化
- 直方图均衡化原理
- 直方图均衡化
- 直方图均衡化
- 直方图的均衡化
- 直方图均衡化ZT
- codechef Chef and Left-Right
- JAVAEE基础
- C/C++内存分配
- 人脸检测和识别
- select函数用法
- 直方图均衡化
- 修改本机host下载android的sdk
- NSKeyedUnarchiver
- centos 安装python2.7
- Hibernate性能优化
- Codeforces Round #271 (Div. 2)
- struts2中<s:select>标签的使用
- 【UML】关联、依赖、泛化、实现等关系说明
- ORACLE笔记