GML和SML原理

GML规定化(组映射)
先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pj到Pi寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。
SML规定化(单映射)
先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pi到Pj寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。

映射结果与分析

GML(组映射)映射结果

GML映射分析
先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pj到Pi寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。
SML(单映射)映射结果

SML映射分析
先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pi到Pj寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。
两种映射方法对比分析

代码

GML映射

%Write  by 长安 Rjex
clc ,clear all
A = [0.1 0.05 0.15 0.2 0.2 0.15 0.05 0.1];  %原直方图矩阵
C = [0 0.3 0 0.45 0 0 0.25 0];  %规定直方图矩阵
F=zeros(1,size(A,2));  %规定化后直方图矩阵
for i = 1:size(A,2)    %B为A的累计直方图矩阵if i == 1    B(i) = A (i);    else    B(i) = B(i-1) + A(i);    end
end
for i = 1:size(C,2)if i == 1    D(i) = C (i);    else     D(i) = D(i-1) + C(i);    end
end
min=1;
flag2 = 1;
for i = 1:size(D,2)if C(i)~=0    for j = flag2:size(B,2)      t=abs(D(i)-B(j));            if(t<min)            min=t;   %min为求差最小绝对值                flag=j;  %flag为所求的最小绝对值下标            end        end        for k = flag2:flag        E(k) = i;  %E为GML映射规则矩阵        end        flag2 = flag+1;        min=1;    end
end
for i = 1:size(E,2)F(E(i))=F(E(i))+A(i);
end
j=1:size(A,2);
subplot(1,2,1),stem(j-1,A(j),'fill','black'),title('原始直方图'),xlabel('r_{k}'),ylabel('p_{r}(r_{k})');
subplot(1,2,2),stem(j-1,F(j),'fill','black'),title('GML映射规则'),xlabel('s_{k}'),ylabel('p_{s}(s_{k})');

SML映射

%Write  by 长安 Rjex
clc ,clear all
A = [0.1 0.05 0.15 0.2 0.2 0.15 0.05 0.1];  %原直方图矩阵
C = [0 0.3 0 0.45 0 0 0.25 0];  %规定直方图矩阵
F=zeros(1,size(A,2));  %规定化后直方图矩阵
for i = 1:size(A,2)    %B为A的累计直方图矩阵if i == 1    B(i) = A (i);   else    B(i) = B(i-1) + A(i);    end
end
for i = 1:size(C,2)     %D为C的累计直方图矩阵if i == 1    D(i) = C (i);    else    D(i) = D(i-1) + C(i);    end
end
min=1;
flag = 1;
for i = 1:size(B,2)for j = 1:size(D,2)    if C(j)~=0        t=abs(B(i)-D(j));            if(t<min)                min=t;   %min为求差最小绝对值                flag=j;  %flag为所求的最小绝对值下标            end        end   end    E(i) = flag; %E为CML映射规则矩阵    min=1;
end
for i = 1:size(E,2)  %F为规定化后直方图矩阵    F(E(i))=F(E(i))+A(i);
end j=1:size(A,2);
subplot(1,2,1),stem(j-1,A(j),'fill','black'),title('原始直方图'),xlabel('r_{k}'),ylabel('p_{r}(r_{k})');
subplot(1,2,2),stem(j-1,F(j),'fill','black'),title('CML映射规则'),xlabel('s_{k}'),ylabel('p_{s}(s_{k})');

直方图规定化——GML和SML映射规则相关推荐

  1. 直方图规定化:SML和GML

    1.单映射规则(SML) 当采用SML映射时,从原始累计直方图向目标累计直方图进行,分别在每一列中找到最小值第一次出现的数的行号.在目标累计直方图中找到与原始累计直方图第一次出现的差值最小的数的行号. ...

  2. 直方图规定化之SML和GML映射

    参考: 章毓晋. 图像工程(上册):图像处理[M]. 北京: 清华大学出版社,2006. 灰度直方图规定化实现方法的分析 pdf http://blog.csdn.net/juyingmin/arti ...

  3. matlab 自定义直方图匹配_matlab中直方图规定化(直方图匹配)的单映射 – MATLAB中文论坛...

    matlab写的一个直方图规定化中的单映射程序,大家可以借鉴下 clc; clear; I=imread('e:\2.bmp'); figure,subplot(321),imshow(I); tit ...

  4. 一种基于灰度映射以及直方图规定化的遥感图像对比度增强技术研究

    目录 一.绪论 二.基于灰度映射的对比度增强技术 2.1 线性映射 2.2 动态范围压缩 2.3 Gamma校正 2.4 对比度增强实例分析 三.基于直方图的对比度增强技术 3.1 直方图均衡化 3. ...

  5. 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 2016-6-8日用C++也实现了直方图规定化, ...

  6. opencv:灰色和彩色图像的像素直方图及直方图均值化的实现与展示

    直方图及直方图均值化的理论,实现及展示 直方图: 首先,我们来看看什么是直方图: 理论概念: 在图像处理中,经常用到直方图,如颜色直方图.灰度直方图等. 图像的灰度直方图就描述了图像中灰度分布情况,能 ...

  7. Python实现图像直方图规定化(直方图匹配)-附完整代码

    以下内容需要直方图均衡化.规定化知识 均衡化:https://blog.csdn.net/macunshi/article/details/79815870 规定化:https://blog.csdn ...

  8. 图像处理:直方图规定化

    直方图均衡化能够自动的扩展图像灰度的动态范围从而提高图像的对比度增强视觉效果.但是并非所有的图像都适合直方图均衡化,例如图像中大部分灰度值接近0时,由于接近0的像素多权重大,根据均衡原理使用(L-1) ...

  9. 【学习图像处理】之实验二——灰度图像直方图规定化

    灰度图像直方图规定化 图像增强 一.实验内容 二.灰度直方图 1.什么是灰度直方图? 2.直方图均衡化 3.直方图规定化 三.代码实现与分析 0.辅助功能实现 1.绘制原图像直方图SH 2.绘制均衡直 ...

最新文章

  1. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.5
  2. 17、MySQL创建,执行事件
  3. 读书笔记_C#入门经典(第5版)第六章_函数
  4. nginx 静态资源WEB服务
  5. iOS上文本处理之简史
  6. iOS持久化存储-CoreData简介
  7. ASP.NET Core 认证与授权[1]:初识认证
  8. linux权限最小化分级,vim可视化Linux系统安全最小化原则 su sudo
  9. 精美在线课程教育学习培训平台网站模板源码 HTML纯静态
  10. 32f4 usb 升级程序_不断中招的你还放心升级win10吗?wi10近期更新问题及解决办法...
  11. 抽象同步器AQS应用之-- Semaphore、CountDownLatch、CyclicBarrier的介绍
  12. eclipse在Windows7 64 位下出现Unhandled event loop exception No more handles
  13. asp.net core mcroservices 架构之 分布式日志(二)之自定义日志开发
  14. java中重写hashcode_Java中HashSet要重写equals方法和hashCode方法
  15. Mac(不限于)中几个有内涵的工具
  16. Oracle表字段的增加、删除、修改和重命名
  17. 大白话理解后端CRUD
  18. 在这个世界我只喜欢三件事---暮光之城
  19. centos下设置屏保
  20. Sunday算法流程与代码

热门文章

  1. shell脚本用户输入处理——shell编程学习_七
  2. dede 搜索时出现“SphinxClient类找不到”解决
  3. 博弈论——最后通牒与讨价还价
  4. GeoScene发布缓冲区GP服务
  5. vue php 架构目录,Vue.js 目录结构
  6. Java编程高级教程,这些数据库索引的高频面试题,你都掌握了多少
  7. ABP入门教程(五)集成Dapper
  8. 2023系统分析师-文老师资料必备知识点
  9. inputtype='file' 标签选取文件/文件夹
  10. Java 泛型的不变性 (invariance)、协变性 (covariance)、逆变性 (contravariance)