MATLAB图像直方图均衡化

原创 2018年04月16日 17:22:55

MATLAB图像直方图均衡化

(1)图像直方图均衡化

      图像直方图是对图像灰度出现频数的统计(这里只研究灰度图,暂不讨论多通道图像)。一张高对比度的图,往往各个灰度级出现频次相近,因此在图像增强时时常希望将使直方图均衡。

(2)MATLAB函数实现

      MATLAB本身自带直方图均衡化函数:histeq(),最简单的调用就是以想处理的图像作为输入变量即可。同时MATLAB还提供了一个函数:adapthisteq(),可以进行自适应的直方图均衡化。这两者对同一张图像处理的区别见下图:

原图直方图


处理效果图


处理后直方图


      可以看出,自适应全局直方图均衡化效果会更好一些。

(3)自编程序实现

      通过以下自编程序实现了直方图均衡化(具体算法略):

%读入待处理图片
original = imread('F:\Fig0327(a)(tungsten_original)','tif');
%获取待处理图片尺寸
[h w] = size(original);
%直方图统计
p = zeros(1,256);
for i = 1:256
   p(i) = sum(sum(original == (i-1)));
end
p = double(p);
p = p./(h*w);
figure(1);
bar(0:255,p);hold on;%这里直接bar(p)会导致横坐标与灰度值差1
axis([0 255 0 0.12]);
title('我的直方图分布');
% 直方图均衡化
s = zeros(1,256);
for i = 1:256
    for j = 1:i
        s(i) = s(i)+255*p(j);
    end
end
s = uint8(s);
for i = 1:h
    for j = 1:w
        for k = 1:256
            if original(i,j) == k-1
                original(i,j) = s(k);
                break;%防止重复赋值
            end
        end
    end
end
figure(2);
subplot(1,3,1)
imshow(original);hold on;
title('原图像');

       这串代码未经优化,占用了大量资源、耗费了大量时间,有待改进。但是真正的问题是它的处理效果和MATLAB自带函数不同,结果如下:

处理效果图


统计直方图


      出现原因有待考证。(有点忙)

(4)资料来源

     冈萨雷斯的《数字图像处理》啦~

      

matlab 图像直方图均衡化

读入一幅图像,计算并绘制图像的直方图 >> sample = imread('sample.jpg'); >> imshow(sample); >> [M,N]=size(sample); >> [c...
  • hzh_csdn
  • hzh_csdn
  • 2016-11-21 22:36:10
  • 4830

matlab自定义函数 灰度图像直方图均衡化(图像增强)

题目:自定义函数实现对灰度图像的直方图均衡化(即MATLAB内置函数histeq的功能)。要求呈现原图和处理后的图像对比,以及灰度值转换方程的图像。 函数原型: function [enhance...
  • Miss_Jasmine
  • Miss_Jasmine
  • 2018-01-09 07:53:38
  • 129

matlab实现 RGB图像的 直方图 均衡化

  • 2009年04月26日 15:31
  • 13KB
  • 下载

matlab对图像进行直方图均衡化

% 对图像进行直方图均衡化操作增加对比度 clear all; close all; F=imread('1.jpg'); Y = F(:,:,1); %获得图像的三个通道的灰...
  • Lrrent
  • Lrrent
  • 2016-04-05 13:31:35
  • 1089

Matlab 直方图均衡化

Matlab 直方图均衡化1. 直方图均衡化介绍直方图均衡化是图像增强的一种基本方法,可提高图像的对比度,即:将较窄的图像灰度范围以一定规则拉伸至较大(整个灰度级范围内)的范围。 目的是在得到在整个...
  • ACMore_Xiong
  • ACMore_Xiong
  • 2016-11-16 09:40:37
  • 13874

【数字图像处理】直方图均衡化详解及编程实现

直方图均衡化的英文名称是Histogram Equalization.   图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最...
  • xiajun07061225
  • xiajun07061225
  • 2011-10-28 09:31:42
  • 117831

直方图均衡化及其代码实现

装载: http://blog.csdn.net/xiajun07061225/article/details/6910129 直方图均衡化的英文名称是Histogram Equalization....
  • Touch_Dream
  • Touch_Dream
  • 2017-03-14 23:21:17
  • 737

图像直方图均衡化和局部均衡化

  • 2009年04月24日 22:36
  • 950B
  • 下载

直方图均衡化—matlab实现

步骤: 统计原图像素每个像素的个数 统计原图像 家里灰度级得映射规则 将原图每个像素点的灰度映射到新图 代码: clear all I=imread('1.jpg'); ...
  • timidsmile
  • timidsmile
  • 2011-10-27 10:33:35
  • 44868

基于matlab实现图像的直方图均衡

将图像转换为具有均匀分布直方图的图像,这一过程叫做直方图均衡。 问题可以转换为:寻找一个变换函数,使变换后图像灰度的概率密度函数等于1,即期望输出图像中每一灰度级有相同的概率。 直方图均衡的过程:...
  • Cathy_YeJ
  • Cathy_YeJ
  • 2016-08-08 12:21:58
  • 2185
收藏助手
不良信息举报
您举报文章:MATLAB图像直方图均衡化
举报原因:
原因补充:

(最多只允许输入30个字)