Matlab 直方图均衡化
来源:互联网 发布:myflow.js 源码介绍 编辑:程序博客网 时间:2024/05/22 10:42
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; endendf = 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); endend% 输出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 endendf = 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); endend% 求累计概率,得到累计直方图for k = 1 : K for i = 2 : 256 f(k, i) = f(k, i - 1) + f(k, i); endend% 用f数组实现像素值[0, 255]的映射。 for k = 1 : K for i = 1 : 256 f(k, i) = f(k, i) * 255; endend% 完成每个像素点的映射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 endend% 输出RGB = uint8(RGB);subplot(122);imshow(RGB);title('彩色直方图均衡化');
3.2 运行截图
1 0
- matlab直方图均衡化
- 【matlab】直方图均衡化
- 直方图均衡化matlab
- 直方图均衡化(matlab)
- matlab 直方图均衡化
- Matlab 直方图均衡化
- [matlab]直方图均衡化
- MATLAB 直方图,线性变换,直方图均衡化
- matlab中的直方图均衡化
- matlab 的直方图均衡化
- 直方图均衡化程序 matlab
- 直方图均衡化的matlab实现
- 用MATLAB编程实现直方图均衡化
- 直方图均衡化—matlab实现
- 直方图均衡化(matlab实现)
- Matlab绘制直方图以及均衡化
- DIP作业1 直方图均衡化 matlab
- 直方图均衡化matlab实现(续)
- python读取.txt文件数据和将数据写入文件.txt
- js的单线程和异步
- jq节点操作
- 集合 总结
- 兔子-mipmap与drawable
- Matlab 直方图均衡化
- android studio 编译各种疑难杂症,总有你想要的~
- Eclipse Class Decompiler——Java反编译插件
- 中文转拼音
- jQuery Validate验证框架详解
- 理解OAuth 2.0
- thinkphp 3.2.3(推荐使用,因为直接生成)
- Android进程之间通信Aidl
- Chrome浏览器地址栏https显示红叉和删除线,无法打开网站