文档章节

图像处理技术课第二次试验(1)——图像的均衡化处理

天蚕宝衣
 天蚕宝衣
发布于 2017/03/23 11:19
字数 492
阅读 7
收藏 0
点赞 0
评论 0
% Equalization.m

clear
%一,读取图像
originalpicture = imread('F:/personal/2_硕士/1_2_研一下学期/3_图像处理技术(李智)/2017.03.21/0_Equalization/lena512.bmp');              % 读入JPG彩色图像文件
imshow(originalpicture);                                  % 显示出来

%二,绘制直方图
[m, n] = size(originalpicture);                             % 测量图像尺寸参数
GP = zeros(1, 256);                            % 预创建存放灰度出现概率的向量
% 通过循环计算每级灰度出现的概率,将其存入GP中相应位置
for k = 0 : 255
    GP(k + 1) = length(find(originalpicture == k)) / (m * n);     
end

figure, bar(0 : 255, GP, 'g');                % 绘制直方图
title('原图像直方图');
xlabel('灰度值');
ylabel('出现概率');

% 三,直方图均衡化
% 创建新的灰度级概率表,将灰度级概率进行累加,使灰度级概率的峰值变宽,图像变得更加细腻。
% S1 = zeros(1, 256);
% for i = 1 : 256
%     for j = 1 : i
%         S1(i) = GP(j) + S1(i);                   % 计算Sk
%     end
% end


% 直方图均衡化
% 创建新的灰度级概率表,将灰度级概率进行累加,使灰度级概率的峰值变宽,图像变得更加细腻。
s1 = zeros(1, 256);
for i = 1 : 256
    for j = 1 : i
        s1(i) = GP(j) + s1(i);                   
    end
end

% 将灰度级进行映射。
% S2 = round((S1 * 256) + 0.5);                    % 将Sk归到相近级的灰度
% 
% for i = 1 : 256
%     GPeq(i) = sum(GP(S2 == i));                  % 计算现有每个灰度级出现的概率
% end

% 将灰度级进行映射。
newgray = round((s1 * 256) + 0.5);                

for i = 1 : 256
    % 计算现有每个灰度级出现的概率
    GPeq(i) = sum(GP(newgray == i));               % #ok<SAGROW>
end

figure, bar(0 : 255, GPeq, 'b');                   % 显示均衡化后的直方图
title('均衡化后图像的直方图');
xlabel('灰度值');
ylabel('出现概率');

% 四,图像均衡化
equalizationpicture = originalpicture;
for i = 0 : 255
    % 将各个像素归一化后的灰度值赋给这个像素
    equalizationpicture(find(originalpicture == i)) = newgray(i + 1);            
end
figure, imshow(equalizationpicture);                            % 显示均衡化后的图像
title('均衡化后图像');
imwrite(equalizationpicture, 'PicEqual.bmp');

 

© 著作权归作者所有

共有 人打赏支持
天蚕宝衣
粉丝 18
博文 236
码字总数 178069
作品 0
天津
【数字图像处理】七.MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化详解

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

Eastmount ⋅ 2015/06/08 ⋅ 0

【图像处理】彩色图像处理(Color Image Processing)

实验要求   (1.a) 编写程序实现图6.23,程序的输入为图像中指定的两个灰度级范围。程序的输出为RGB 格式图像,其中,一个灰度级范围显示为指定的彩色,其余的像素以RGB 形式显示为与输入图像...

u013165921 ⋅ 01/15 ⋅ 0

我如何用57行代码复刻一个8600万美元的项目

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

众成翻译 ⋅ 2017/12/21 ⋅ 0

前沿 | 视网膜眼底图像预测心脏病风险:Nature综述深度学习在生物医疗中的新应用

  选自Nature   作者:Amy Maxmen   机器之心编译   参与:黄小天、李泽南      生物医疗是机器学习技术应用对接的重要领域之一。近日,Nature 报道了谷歌运用深度学习技术(主要...

机器之心 ⋅ 01/05 ⋅ 0

专业级Web图像处理引擎--AlloyImage

腾讯Web前端 AlloyTeam 近日推出了最新开源项目:一个基于HTML5技术的专业级图像处理引擎——AlloyImage(简称AI),以及一个在线Web图像处理平台——AlloyPhoto(简称AP)。这预示着腾讯的Web前...

Kinvix ⋅ 2013/03/27 ⋅ 12

图像处理入门教程

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

u013088062 ⋅ 2015/12/29 ⋅ 0

人脸识别---人脸图像预处理

Abstrcat—人脸图像预处理是为了去除光照对人脸影响。 通常我们采用直方图均衡化对人脸图像进行处理。下面介绍一个方法对人脸进行预处理,由于没有找到相关文献的介绍,现在只能给出公式以及...

hlx371240 ⋅ 2015/11/11 ⋅ 0

(三)matlab数字图像处理实验-图像灰度变换处理

前两节都是熟悉一下怎么在matlab底下对图片做一些操作,并没有什么卵用,这一节稍微有点卵用,灰度变换一般是图像处理的第一步。 数字图像处理实验1-9点击下列链接有源码和链接: matlab数字...

aninstein ⋅ 01/06 ⋅ 0

未来2个月,博客文章大纲,一切与公司要求对口

我的小目标 在我的上篇博客,我总结了当前十多家名企的招聘要求,做了技术要求汇总,发现列出的果然是每条都能写进简历的。我立即转变了写博客的路线,不再像无头苍蝇一样心血来潮地写博客了...

翻滚吧李博 ⋅ 2017/12/05 ⋅ 0

基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android)

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

长平狐 ⋅ 2012/10/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

浅谈springboot Web模式下的线程安全问题

我们在@RestController下,一般都是@AutoWired一些Service,由于这些Service都是单例,所以并不存在线程安全问题。 由于Controller本身是单例模式 (非线程安全的), 这意味着每个request过来,...

算法之名 ⋅ 52分钟前 ⋅ 0

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部