Matlab 直方图均衡化
2016-11-16 09:40
162 查看
Matlab 直方图均衡化
1. 直方图均衡化介绍
直方图均衡化是图像增强的一种基本方法,可提高图像的对比度,即:将较窄的图像灰度范围以一定规则拉伸至较大(整个灰度级范围内)的范围。目的是在得到在整个灰度级范围内具有均匀分布的图像。
实现步骤如下:
读入图像
对每个通道分别统计像素值[0,255]出现的次数。
对每个通道分别求像素值[0,255]出现的概率,得到概率直方图。
对每个通道分别求像素值[0,255]概率的前缀和,得到累计直方图。
对每个通道根据累计直方图分别求像素映射函数。
对每个通道完成每个像素点的映射。
输出直方图均衡化的图像。
2. 灰度图直方图均衡化
2.1 参考代码
RGB = imread('1.png'); % 读取彩色图 subplot(131); imshow(RGB); title('彩色图'); I=rgb2gray(RGB); % 将彩色图转化为灰度图 subplot(132); imshow(I); title('灰度图'); [R, C] = size(I); % 统计每个像素值出现次数 cnt = zeros(1, 256); for i = 1 : R for j = 1 : C cnt(1, I(i, j) + 1) = cnt(1, I(i, j) + 1) + 1; end end f = zeros(1, 256); f = double(f); cnt = double(cnt); % 统计每个像素值出现的概率, 得到概率直方图 for i = 1 : 256 f(1, i) = cnt(1, i) / (R * C); end % 求累计概率,得到累计直方图 for i = 2 : 256 f(1, i) = f(1, i - 1) + f(1, i); end % 用f数组实现像素值[0, 255]的映射。 for i = 1 : 256 f(1, i) = f(1, i) * 255; end % 完成每个像素点的映射 I = double(I); for i = 1 : R for j = 1 : C I(i, j) = f(1, I(i, j) + 1); end end % 输出 I = uint8(I); subplot(133); imshow(I); title('直方图均衡化');
2.2 运行截图
3. 彩色图直方图均衡化
3.1 参考代码
RGB = imread('1.png'); % 读取彩色图 subplot(121); imshow(RGB); title('彩色图'); [R, C, K] = size(RGB); % 新增的K表示颜色通道数 % 统计每个像素值出现次数 cnt = zeros(K, 256); for i = 1 : R for j = 1 : C for k = 1 : K cnt(k, RGB(i, j, k) + 1) = cnt(k, RGB(i, j, k) + 1) + 1; end end end f = zeros(3, 256); f = double(f); cnt = double(cnt); % 统计每个像素值出现的概率, 得到概率直方图 for k = 1 : K for i = 1 : 256 f(k, i) = cnt(k, i) / (R * C); end end % 求累计概率,得到累计直方图 for k = 1 : K for i = 2 : 256 f(k, i) = f(k, i - 1) + f(k, i); end end % 用f数组实现像素值[0, 255]的映射。 for k = 1 : K for i = 1 : 256 f(k, i) = f(k, i) * 255; end end % 完成每个像素点的映射 I = double(I); for i = 1 : R for j = 1 : C for k = 1 : K RGB(i, j, k) = f(k, RGB(i, j, k) + 1); end end end % 输出 RGB = uint8(RGB); subplot(122); imshow(RGB); title('彩色直方图均衡化');
3.2 运行截图
相关文章推荐
- MATLAB 直方图,线性变换,直方图均衡化
- 直方图均衡化(matlab)
- MATLAB实例1-直方图均衡化
- MATLAB 直方图,线性变换,直方图均衡化
- Matlab图像处理转灰度图,绘制直方图,直方图均衡化
- matlab灰度变换rgb2gray与直方图均衡化histeq
- 基于直方图均衡化的水下激光图像处理(MATLAB仿真)
- 直方图均衡化的matlab实现
- 数字图像处理之直方图均衡化MATLAB
- matlab练习程序(灰度图直方图均衡化)
- matlab 直方图均衡化(含rgb)
- 使用 matlab 数字图像处理(二)—— 直方图均衡化(极简实现)
- 详解图像直方图均衡化原理,附自己写的在MATLAB下写的直方图均衡化源码,目的与OpenCV算法统一!
- matlab 直方图均衡化
- 报告论文:直方图均衡化和规定化 matlab实现
- matlab进阶摸索篇——彩色图直方图均衡化
- matlab 图像直方图均衡化
- matlab中的直方图均衡化
- 灰度图直方图均衡化(matlab练习程序)
- matlab直方图均衡化