histeq的原理:

[MN]=size(H);

[counts,x]=imhist(H);%H是读取的图像,imhist是对图像直方图进行统计,其中count,是每个灰度值得个数,x代表灰度值。一般的,x=1:256

location=find(counts~=0);%找到所有像素个数不为0的灰度级

MinCDF=min(counts(location));%找到包含个数最少的灰度级

for  j=1:length(location)

CDF=sum(counts(location(1:j)));%计算各个灰度级像素个数累计分布

P=find(H==x(location(j)));%找到图像中等于某个灰度级所有像素点所在位置

H(P)=(CDF-MinCDF)/(M*N-MinCDF);%%利用灰度换算公式,修改所有位置上的像素值

end

举例:

clc;
H=imread('03.tif');figure;subplot(121);imshow(H);%图像应该是灰度图,若图像为彩色图,需要对每个通道进行计算
H=im2double(H);%这个是需要注意的地方,一定要变换成double类型
[M N]=size(H);
[counts,x]=imhist(H);%H是读取的图像,imhist是对图像直方图进行统计,其中count,是每个灰度值得个数,x代表灰度值。一般的,x=1:256
location=find(counts~=0);%找到所有像素个数不为0的灰度级
MinCDF=min(counts(location));%找到包含个数最少的灰度级

for j=1:length(location)

CDF=sum(counts(location(1:j)));%计算各个灰度级像素个数累计分布
P=find(H==x(location(j)));%找到图像中等于某个灰度级所有像素点所在位置
H(P)=(CDF-MinCDF)/(M*N-MinCDF);%%利用灰度换算公式,修改所有位置上的像素值
end

subplot(122);imshow(H)

如果是直接调用函数;

H=imread('03.tif');figure;
imshow(H);title(' 原始图像 '); %
figure;
imhist(H);
title(' 原始直方图 ');
B=histeq(H);
figure;imshow(B);title(' 均衡图像 ');
figure;
imhist(B);
title(' 均衡化直方图 ');

直方图histeq的更多相关文章

  1. Matlab图像直方图相关函数

    图像的灰度直方图(H是图像a.bmp的数据矩阵) imhist(H):%显示a的直方图 histeq(H); %将图像a进行直方图均衡化 adapthisteq(H); %将图像a进行直方图均衡化 i ...

  2. 图解直方图均衡化及其Python实现

    在理解直方图均衡化的过程中,参考了一些书籍和博客,让人困惑的是,笔者对于直方图的理解还是停留在表面,并没有深入理解其内涵.因此,本文拟结合图片对直方图的概念进行阐述,并给出其Python实现,最后对她 ...

  3. python计算机视觉1:基本操作与直方图

    本文主要内容来源于书籍<python计算机视觉编程> 我是一名初学者,如果你发现文中有错误,请留言告诉我,谢谢 PIL模块 PIL模块全程为Python Imaging Library,是 ...

  4. C++ 直方图匹配算法代码

    /*-------------------------------------------------------------------------*/ // 函数名称: histeq() // 传 ...

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

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

  6. 图像处理 Matlab实现线性点运算、非线性点运算、点运算与直方图、直方图均衡化

    今天,我们学习了直方图.于是乎,回来我就用matlab代码实现一下.昨天受到道路检测老师课上一个内容的影响(对于道路裂缝的检测,我突发奇想,如果对于道路图像进行操作,是否能够让裂缝与道路分离,使得图像 ...

  7. matlab histeq函数介绍

    Histeq Enhance contrast using histogram equalization 该函数通过直方图均衡化来添加对照度 Syntax J = histeq(I,hgram) De ...

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

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

  9. python——直方图均衡化

    from PIL import Image from pylab import * from numpy import * def histeq(im,nbr_bins = 256): "& ...

随机推荐

  1. STL中_Rb_tree的探索

    我们知道STL中我们常用的set与multiset和map与multimap都是基于红黑树.本文介绍了它们的在STL中的底层数据结构_Rb_tree的直接用法与部分函数.难点主要是_Rb_tree的各 ...

  2. c# 调用c++类库控制usb继电器

    网上找不到调用此类库的文章,简单写一下,以备后用. 下面是封装后的调用c++类库的类 public class UsbRelayDeviceHelper { /// <summary> / ...

  3. Linux的VMware虚拟机无法上网问题

    很多时候,Linux无法上网,不管改成nat模式还是主机模式都不行.这时候可以选择进行重置: 首先点击编辑,之后点击虚拟网络编辑器, 然后移除VMnet0和VMnet8网络,点击确定: 然后再打开虚拟 ...

  4. 简单scrapy爬虫实例

    简单scrapy爬虫实例 流程分析 抓取内容:网站课程 页面:https://edu.hellobi.com 数据:课程名.课程链接及学习人数 观察页面url变化规律以及页面源代码帮助我们获取所有数据 ...

  5. linux执行计划任务at命令

    https://www.jianshu.com/p/17f5aa01853f 在linux计划任务中, cron 是周期性运行某任务,假如我只想在未来的某时间点只是要求任务运行一次,这就用到at命令了 ...

  6. [CF1034A] Two Rabbits - 数学

    判断能否整除即可 #include <bits/stdc++.h> using namespace std; int x,y,a,b; int main() { int t; ios::s ...

  7. (转)linux 之 grep命令

    转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html 简介 grep (global search regular e ...

  8. IDEA工具java开发之 运行与调试

    一.运行项目 ◆右键运行 ◆菜单运行 ◆run窗口运行 ◆启动参数 作用:经常用在本地开发环境要去连测试的数据库的时候使用.正常的情况下是连开发环境的数据库的,但是有些情况是需要连测试数据库的.所以这 ...

  9. Docker+JMeter单机版+MinIO

    基于JMeter5.1.1+MinIO JMeter发起压测  MinIO作为文件服务器 一.目录结构: Dockerfile文件: FROM ubuntu:18.04# 基础镜像 MAINTAINE ...

  10. [JZOJ5060] 公路建设

    题目描述 在Byteland一共有n个城市,编号依次为1到n,它们之间计划修建m条双向道路,其中修建第i条道路的费用为ci. Byteasar作为Byteland公路建设项目的总工程师,他决定选定一个 ...