@

1.直方图均衡化

对图像进行非线性拉伸,重新分配图像像元值,使一定灰度范围内像元值的数量大致相等就是直方图的均衡化。原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小,会产生粗略的分类的视觉效果。

在MATLAB中,histeq函数用于直方图的均衡化。

实现代码如下

clear
close all
clc
I=imread('peppers.png');
subplot(221)
I=rgb2gray(I);
imshow(I)
title('原始图像')
subplot(222)
imhist(I)
title('原始图像直方图')
I1=histeq(I);
subplot(223)
imshow(I1)
title('图像均衡化')
subplot(224)
imhist(I)
title('直方图均衡化')



从MATLAB2007a开始,提供了一个新的函数adapthisteq,该函数限定对比度适应性直方图均衡化,它先对图像的局部块进行直方图均衡化,然后利用双线性插值方法把各个小块拼接起来,以消除局部造成的边界。代码如下:

clear
close all
clc
A=imread('cell.tif');
subplot(131)
imshow(A)
title('原始图像')
B=histeq(A);
subplot(132)
imshow(B)
title('histeq函数作用效果')
C=adapthisteq(A);
subplot(133)
imshow(C);
title('adapthisteq函数作用效果');

2.直方图规定化

所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。所以直方图修正的关键就是灰度映像函数。直方图规定化是用于产生处理后有特殊直方图图像的方法。令Pr(V)和Pz(Z)分别为原始图像和期望图像的灰度概率密度函数。对原始图像和期望图像均做直方图均衡化处理,应有



由于都是作直方图均衡化处理,所以处理后的原图像的灰度概率密度函数Ps(S)及理想图像的灰度概率密度函数Pv(V)是相等的。因此,可以用变换后的原始图像灰度级S代替上式中的V,即



利用此式可以从原始图像得到希望的图像灰度级。对离散图像有



综上所述,数字图像的直方图规定化算法如下:

(1)将图像进行直方图均衡化处理,求出原图像中每一个灰度级ri所对应的变换函数Si;

(2)对给定直方图做类似计算,得到理想图像中每一个灰度级Zi所对应的函数Vi;

(3)找出Vi≈Si的点对,并映射到Zi;

(4)求出Pi(Zi);

代码如下:

clear
close all
clc
I=imread('tire.tif');
subplot(221)
imshow(I);
title('原始图像')
hgram=50:2:250;%规定化函数
J=histeq(I,hgram);
subplot(222)
imshow(J)
title('图像规定化')
subplot(223)
imhist(I,64)
title('原始图像直方图')
subplot(224)
imhist(J,64)
title('规定化后直方图')

直方图均衡化与直方图规定化的MATLAB实现的更多相关文章

  1. 【OpenCV】图像增强---灰度变换、直方图均衡化

    图像增强的目的:改善图像的视觉效果或使图像更适合于人或机器的分析处理.通过图像增强,可以减少图像噪声,提高目标与背景的对比度,也可以增强或抑制图像中的某些细节.  ------------------ ...

  2. 图像处理之直方图均衡化及C源码实现

    1 直方图均衡化(Histogram Equalization)简介 图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法.直方图拉伸和直方图均衡化是两种最常见的间接 ...

  3. 直方图均衡化的 C++ 实现(基于 openCV)

    这是数字图像处理课的大作业,完成于 2013/06/17,需要调用 openCV 库,完整源码和报告如下: #include <cv.h> #include <highgui.h&g ...

  4. opencv图像直方图均衡化及其原理

    直方图均衡化是什么有什么用 先说什么是直方图均衡化,通俗的说,以灰度图为例,原图的某一个像素为x,经过某个函数变为y.形成新的图.新的图的灰度值的分布是均匀的,这个过程就叫直方图均衡化. 图像直方图均 ...

  5. opencv::直方图均衡化

    直方图均衡化 图像直方图: 是指对整个图像像在灰度范围内的像素值是指对整个图像像在灰度范围内的像素值(~)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图. 直方图反映了图像灰度的分布情况. ...

  6. c#数字图像处理(六)直方图均衡化

    直方图均衡化又称直方图修平,是一种很重要的非线性点运算.使用该方法可以加强图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候.通过这种方法,亮度可以更好的在直方图上分布. 直方图均衡化的基 ...

  7. 实现直方图均衡化(java+opencv)

    什么是直方图均衡化? 直方图均衡化是一种简单有效的图像增强技术,通过改变图像的直方图来改变图像中各像素的灰度,主要用于增强动态范围偏小的图像的对比度.原始图像由于其灰度分布可能集中在较窄的区间,造成图 ...

  8. 直方图均衡化与Matlab代码实现

    昨天说了,今天要好好的来解释说明一下直方图均衡化.并且通过不调用histeq函数来实现直方图的均衡化. 一.直方图均衡化概述 直方图均衡化(Histogram Equalization) 又称直方图平 ...

  9. matlab 直方图均衡化

    原理: 直方图均衡化首先是一种灰度级变换的方法: 原来的灰度范围[r0,rk]变换到[s0,sk]变换函数为:s=T(r); 为便于实现,可以用查找表(look-up table)的方式存储,即:原始 ...

随机推荐

  1. Oracle 11 安装教程(桌面类)

    准备文件: http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip http://downlo ...

  2. HDU 6102 - GCDispower | 2017 Multi-University Training Contest 6

    个人感觉题解的复杂度很玄,参不透,有没有大佬讲解一下- - /* HDU 6102 - GCDispower [ 数论,树状数组] | 2017 Multi-University Training C ...

  3. CodeForces 835C - Star sky | Codeforces Round #427 (Div. 2)

    s <= c是最骚的,数组在那一维开了10,第八组样例直接爆了- - /* CodeForces 835C - Star sky [ 前缀和,容斥 ] | Codeforces Round #4 ...

  4. 桥接模式(Bridge)---结构型

    1 基础知识 定义:将抽象部分与它的具体实现部分分离,使得它们都可以独立变化.特征:通过组合的方式建立两个之间的联系而不是继承. 使用场景:抽象和具体实现之间增加更多的灵活性:一个类存在两个(多个)独 ...

  5. 最大的矩形(CCF)

    问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方图.例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3 ...

  6. Luogu P2324 [SCOI2005]骑士精神 搜索

    刚开始写了个没迭代的...结果过了$qwq$ 然后迭个代..更快了.. #include<cstdio> #include<iostream> #define R regist ...

  7. asmlinkage的用法

    转自:https://www.cnblogs.com/china_blue/archive/2010/01/15/1648523.html https://blog.csdn.net/liujiaoy ...

  8. mysql保留最新数据

    直接上sql语句,亲测可用: DELETE tb FROM lotus_system_log AS tb ,(SELECT pk_id FROM lotus_system_log ORDER BY p ...

  9. jQuery属性操作之DOM属性操作

    DOM属性操作是对DOM元素的属性进行读取.设置和移除操作, 比如prop(). removeProp(). 1. prop() 1.1 使用prop()获取返回值 prop() 用于返回属性值时, ...

  10. Linux网络编程六、报文解析(1)

    一.pcap文件解析 依赖的库:libpcap,头文件:pcap/pcap.h 获取pcap文件:tcpdump,-i:指定监听接口,默认配置好的最小的号码的接口.-w:指定存入文件,将原始报文存入指 ...