文档章节

图像处理技术课第二次试验(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))       %新图的直方图

 

© 著作权归作者所有

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

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

长平狐
2012/10/08
556
0
我如何用57行代码复刻一个8600万美元的项目

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

众成翻译
2017/12/21
0
0
【数字图像处理】七.MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化详解

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

Eastmount
2015/06/08
0
0
OpenCV视频计算机视觉图像识别实战Python

百度网盘 ├─第01讲 工欲善其事必先利其器-图像处理基础│ cv第一次资料.rar│ 第一课.mkv│ ├─第02讲 初探计算机视觉│ cv_第一二讲.pdf│ cv第二次资料.rar│ 第二课.mkv│ ├─第03讲 ...

远近高低各不同
11/09
0
0
Metal图像处理——直方图均衡化

前言 Metal入门教程总结 正文 核心思路 首先,我们用直方图来表示一张图像:横坐标代表的是颜色值,纵坐标代表的是该颜色值在图像中出现次数。 如图,对于某些图像,可能出现颜色值集中分布在...

落影loyinglin
08/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

崛起于Springboot2.X之通讯WebSocket(40)

技术简介:Springboot2.0.3+freemaker+websocket 1、添加pom依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo......

木九天
9分钟前
0
0
Java常用四大线程池用法以及ThreadPoolExecutor详解

为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多,抢占系统资源从而导致阻塞 3.对线程进行一些简单的管理 在Java中...

孟飞阳
11分钟前
0
0
Netty+Websocket 实现一个简易聊天室

后台代码 /** * 服务端 */public class ChatServer {public static void main(String[] args) throws Exception {int port=8080; //服务端默认端口new ChatServer().bind...

这很耳东先生
12分钟前
1
0
一个本科学生对Linux的认知

我是一名大三的普通一本大学的软件工程的一名学生,学校开设了一些关于系统开发的课程,纸上得来终觉浅,学校的课程课时较短,想要在56个课时之内学会一些公司需要的技能,无疑是纸上谈兵,一...

linuxprobe16
14分钟前
0
0
如何选择开源许可证?

如何为代码选择开源许可证,这是一个问题。 世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种----GPL、BSD、MIT、Mozilla、Apache和LGPL----之中做选择,...

吴伟祥
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部