文档章节

图像处理技术课第二次试验(2)——图像的规定化处理_1

天蚕宝衣
 天蚕宝衣
发布于 2017/03/23 11:26
字数 534
阅读 13
收藏 0

直方图规定化的原理,

直方图规定化是指将一幅图象通过灰度变换后,使其具有特定的直方图形式。直方图规定化处理一般可以分为两类:①使图象与某一标准图象具有相同的直方图;②图象具有某一特定函数(比如说高斯函数)形式的直方图。

如下图所示,希望将图象A(x,y)变换为具有特定直方图H3(D)的图象C(x,y)。首先利用直方图均衡化将图象A(x,y)变换为具有平坦直方图的图象B(x,y),再利用第二个灰度变换将B(x,y)变换为C(x,y):

直方图规定化处理的第二种方法,代码举例如下:

% AdvancedGaussian.m

% 定义一个高斯函数。
r = 127;                              
x = -r : r + 1;
sigma = 20;
y = exp(-(x.^2) / (2 * sigma ^ 2));

%im=imread('bg.bmp');  %匹配一个图像的直方图
%y=imhist(im);
y = y / sum(y);        %归一化,使函数符合概率分布的sum(y)==1这样一个规律
plot(y);               %待匹配的直方图

%函数的累积直方图
Q = [];                
for i = 1 : 256  
    if (i == 1)
        Q(i) = y(i);
    else
        Q(i) = Q(i - 1) + y(i);
    end
end

img = imread('F:/personal/2_硕士/1_2_研一下学期/3_图像处理技术(李智)/2017.03.21/0_Equalization/lena512.bmp');
figure;imshow(img)
[m n] = size(img);
hist = imhist(img);       %待处理图像的直方图
p = hist / (m * n);           
figure;plot(p)          %原图直方图

%待处理图像的累积直方图
P = [];                   
for i = 1:256
%     P = [P sum(p(1 : i))];
    if (i == 1)
        P(i)=p(i);
    else
        P(i) = P(i - 1) + p(i);
    end
end

for i = 1 : 256
    tmp{i} = Q - P(i);
    % 因为要找距离最近的点,所以取绝对值
    tmp{i} = abs(tmp{i});         
    % 找到两个累积直方图距离最近的点
    [a index(i)] = min(tmp{i});   
end

imgn = zeros(m, n);
for i = 1 : m
    for j = 1 : n
        %由原图的灰度通过索引映射到新的灰度
        imgn(i, j) = index(img(i, j) + 1) - 1;    
    end
end

imgn=uint8(imgn);
figure;imshow(imgn)
figure;plot(imhist(imgn))       %新图的直方图

 

© 著作权归作者所有

共有 人打赏支持
天蚕宝衣
粉丝 21
博文 239
码字总数 179054
作品 0
天津
基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android)

本文将介绍C/S模式的图像处理系统。C/S的框架已经在[1]中作了简单的介绍。[2]中介绍了如何搭建基于android和WAMP5的B/S模式的本机测试平台。本系统是在[4]中介绍的基础上开发的,有关图像显示...

长平狐
2012/10/08
407
0
【数字图像处理】七.MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化详解

本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程《数字图像处理》及课件进行讲解,主要通过MFC单文档视图实现显示BMP图像增强处理,包括图像普通平滑、高斯平滑、...

Eastmount
2015/06/08
0
0
[Python图像处理] 四.图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波

版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/82216380 该系列文章是讲解Python OpenCV图像处理知识,前...

Eastmount
09/02
0
0
图像处理入门教程

  最近有人问我图像处理怎么研究,怎么入门,怎么应用,我竟一时语塞。仔细想想,自己也搞了两年图像方面的研究,做个两个创新项目,发过两篇论文,也算是有点心得,于是总结总结和大家分享...

u013088062
2015/12/29
0
0
我如何用57行代码复刻一个8600万美元的项目

摘要:利用现有的开源技术就可以将工作做得更好,外国一技术牛人利用现有的开源技术成功用57行代码完成了维多利亚警方耗资8600万美元的项目。 本文由jshhcdxs 在众成翻译平台上翻译。 当使用...

众成翻译
2017/12/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
26
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部