题目:

数字图像处理—实验二

一.实验内容:

⑴直方图均衡化(Histogram equalization),⑵直方图匹配(Histogram

matching),

二.实验目的:

加强直方图均衡化和直方图匹配的图像增强技术的认识和了解。学会用Matlab中的下列函数对输入图像进行上述2类运算;感受各种不同的直方图图像增强处理方法对最终图像效果的影响。

Imhist;histeq;

三.实验步骤:

1.仔细阅读Matlab帮助文件中有关以上函数的使用说明,能充分理解其使用方法并能运用它们完成实验内容。

2.将mountain.jpg图像文件读入Matlab,对其作直方图均衡化。显示运算前后该图像的直方图,处理后的图像和灰度变换函数。

3.对mountain.jpg图像做直方图匹配运算,显示运算前后该图像的直方图,处理后的图像和灰度变换函数。直方图反映灰度等级的分布情况,本实验指定的直方图如下:

1400×r r≤5

7000-310×r 5<r≤20

n

=

900-5×r 20<r≤180

-1440+8×r 180<r≤225

3060-12×r 225<r≤255

4.利用mountain.jpg图像的直方图(imhist函数可生成),编写直方图均衡化函数。

四.实验报告要求:

用imshow, plot等函数生成各类图像及曲线,提交原图像和相关处理方法的曲线,以及经各种方法处理后的图像。分析原始图像与增强图像的不同效果情况。

解析:%2

figure;

a=imread('e:mountain.jpg');

a=im2double(a);

subplot(2,3,1);

imshow(a);title(‘原图’);

subplot(2,3,3);

imhist(a);title('运算前图像直方图');

[A1,T1]=histeq(a);

subplot(2,3,4);

imshow(A1);title('运算后图像');

subplot(2,3,5);

plot(T1);title('灰度变换矩阵')'

subplot(2,3,6);

imhist(A1);title('运算后图像直方图');

%3

figure;

subplot(2,3,1);

imshow(a);title('原图');

subplot(2,3,3);

imhist(a);title('运算前图像直方图');

r=[0:1:255];

n=[r<=5].*r*1400+[r>5].*[r<=20].*(7000-310*r)+[r>20].*[r<=180].*(900-5*r)+[r>180].*[r<=225].*(r*8-1440)+[r>225].*[r<=255].*(3060-12*r);

[A2,T2]=histeq(a,n);

subplot(2,3,4);

imshow(A2);title('运算后图像');

subplot(2,3,5);

plot(T2);title('灰度变换函数');

subplot(2,3,6);

imhist(A2);title('运算后图像直方图');

%4

figure;

ImgData = imread('e:mountain.jpg');

[Height, Width] = size(ImgData);

ImgHist = zeros(256, 1);

for i = 1:Height

for j = 1:Width

ImgHist( double(ImgData(i, j)) + 1 ) = ImgHist(

double(ImgData(i, j)) + 1 ) + 1;

end

end

subplot(2,2,1);

plot(ImgHist);

axis([0 255 0 max(ImgHist)]); title('统计所得图像直方图');

subplot(2,2,2);

PrOfImgData = ImgHist / sum(ImgHist);

plot(PrOfImgData);

axis([0 256 0 max(PrOfImgData)]);title('归一化后的直方图');

subplot(2,2,3);

CSumOfPr = cumsum(PrOfImgData);

plot(CSumOfPr);

axis([0 256 0 max(CSumOfPr)]);title('累计分布函数');

GrayChg = uint8(CSumOfPr *

255);

OutPutImgData = ImgData;

for i = 1:Height

for j = 1:Width

OutPutImgData(i, j) = GrayChg(uint8(double(ImgData(i, j)) +

1));

end

end

for i = 1:Height

for j = 1:Width

ImgHist( double(OutPutImgData(i, j)) + 1 ) = ImgHist( double(OutPutImgData(i, j)) + 1 ) + 1;

end

end

subplot(2,2,4);

plot(ImgHist);

axis([0 255 0 max(ImgHist)]);title('均衡化后的直方图');

figure;

subplot(1,3,1);

imshow(ImgData);title('原始图像')

subplot(1,3,2);

plot(GrayChg);

axis([0 255 0 255]);title('灰度映射函数')

subplot(1,3,3);

imshow(OutPutImgData);title('均衡化后的图像');

matlab 自定义直方图匹配_[转载]Matlab 直方图均衡化和直方图匹配相关推荐

  1. matlab修改图像分辨率_[转载]Matlab图片保存指定分辨率(图片dpi设置)

    登录后查看更多精彩内容~ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 haobang008 于 2016-7-19 14:38 编辑 先附上效果对比,第一张图是300dpi设置 ...

  2. matlab中ss函数_[转载]matlab ss函数 tf函数

    ss 指定状态空间模型或者将线性时不变系统转成状态空间 语法 ss sys = ss(a,b,c,d) sys = ss(a,b,c,d,Ts) sys = ss(d) sys = ss(a,b,c, ...

  3. matlab绘制庞加莱截面_[转载]matlab画的相图和庞加莱截面图

    昨天刚知道什么是相图和庞加莱截面,今天用matlab实现,给我的感觉虽然能画出图但理论基础还差得远.以前我是用vc++编程,现在发现用matlab编程真是太简单了,不过简单归简单就是效率有点低与vc+ ...

  4. matlab 增加图像对比度_计算机视觉学习笔记6 图像直方图与直方图均衡化

    图像的直方图 图像直方图表示图像中每一种像素的个数,反映了图像中每种像素值出现的频率,是图像的基本统计特征之一,具有平移,旋转,缩放不变性,广泛应用于图像处理的各个领域.比如灰度图像的阈值分割,基于颜 ...

  5. tensorflow numpy版本匹配_在Matlab中使用tensorflow (1)

    为了在matlab中利用丰富的python开源资源,探索了如下内容: 1)在matlab中直接调用tensorflow函数: 2)在matlab中调用tensorflow的python程序,结合mat ...

  6. matlab自定义函数如何报错,MATLAB自定义函数

    MATLAB自定义函数形式 function [a,b,c] = funname(x1,x2,x3) 输入变量 对于输入变量,MATLAB可以识别输入变量的个数,通过nargin来记录当前输入变量个数 ...

  7. matlab作动态函数曲线图,[转载]Matlab中使用Plot函数动态画图方法总结

    本帖最后由 sonictl 于 2012-12-31 12:18 编辑 请删除我 清楚超靠靠靠 没办法,一会儿限制这不能发表,那不能发表的.... [转载]Matlab中使用Plot函数动态画图方法总 ...

  8. matlab制作动画并保存,[转载]Matlab中动画的实现、制作和保存(转载Matlab技术论坛)...

    Matlab中动画的实现.制作和保存(转载Matlab技术论坛) 本帖由Matlab技术论坛原创,原帖参见 http://www.matlabsky.com/thread-592-1-1.html 光 ...

  9. matlab中stract用法_求matlab中strcat用法

    MATLAB概述 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言 ...

  10. matlab中图像映射实例,[转载]Matlab实现多种图像配准(转)

    本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...

最新文章

  1. 面试官:为什么HTTPS是安全的?
  2. Retinaface c++
  3. hyperic hq mysql_网络管理工具Hyperic HQ监控MySQL配置
  4. 在线旅游的2020:洗牌重组、直播自救、跨界面敌
  5. gcc优化的简单说明
  6. 这个 Python 代码自动补全神器搞得我卧槽卧槽的
  7. 【Matplotlib】【Python】如何使用matplotlib绘制折现图
  8. LeetCode OJ - Best Time to Buy and Sell Stock II
  9. css3 呼吸的莲花_CSS3制作莲花盛开动画
  10. c++ java setobjectarrayelement_java中jni的使用:C/C++操作java中的数组
  11. Jquery实现可拖拽的树菜单
  12. php openssl.so加载,LINUX下PHP编译添加相应的动态扩展模块so(不需要重新编译PHP,以openssl.so为例)...
  13. 【高速PCB电路设计】8.DDR模块设计实战
  14. 靠java_基础不牢靠,何以争朝夕?Java基础面试82道详细解析!(一)
  15. 中职高考计算机专业真题,中职高考计算机试题及答案
  16. 使用Java编写自己的区块链
  17. 点餐系统后台服务器部署,Java后台——点餐小程序在服务器上运行点餐系统供别人访问...
  18. java对于删除文件失败,的处理方式
  19. 服务器系统日志事件id41,系统莫名重启,系统相关日志中出现事件ID:41,1001,6008,请问这是什么原因导致...
  20. 从百团大战到大兵团作战,天猫“三纵两横”将为商家带来哪些变革

热门文章

  1. f452虚拟服务器,中兴f452网关,超级用户的密码如何获得,启动路由功能
  2. 使用git进行word版本管理
  3. WIN10系统 screencap截图屏幕会自动放大怎么办
  4. 计算机开机错误62,电脑出现Error 1962怎么办 电脑启动报错Error 1962的解决方案介绍...
  5. linux服务器运维基础学习
  6. 直播svga礼物特效怎样制作流程
  7. 【Android项目实战 | 从零开始写app(一)】 创建项目
  8. Mahony 互补滤波算法
  9. 图片查看器-Python-tkinter
  10. 手机号码好坏什么软件测试,测试你的手机号码好不好(很准哦)