matlab 自定义直方图匹配_[转载]Matlab 直方图均衡化和直方图匹配
题目:
数字图像处理—实验二
一.实验内容:
⑴直方图均衡化(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 直方图均衡化和直方图匹配相关推荐
- matlab修改图像分辨率_[转载]Matlab图片保存指定分辨率(图片dpi设置)
登录后查看更多精彩内容~ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 haobang008 于 2016-7-19 14:38 编辑 先附上效果对比,第一张图是300dpi设置 ...
- 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, ...
- matlab绘制庞加莱截面_[转载]matlab画的相图和庞加莱截面图
昨天刚知道什么是相图和庞加莱截面,今天用matlab实现,给我的感觉虽然能画出图但理论基础还差得远.以前我是用vc++编程,现在发现用matlab编程真是太简单了,不过简单归简单就是效率有点低与vc+ ...
- matlab 增加图像对比度_计算机视觉学习笔记6 图像直方图与直方图均衡化
图像的直方图 图像直方图表示图像中每一种像素的个数,反映了图像中每种像素值出现的频率,是图像的基本统计特征之一,具有平移,旋转,缩放不变性,广泛应用于图像处理的各个领域.比如灰度图像的阈值分割,基于颜 ...
- tensorflow numpy版本匹配_在Matlab中使用tensorflow (1)
为了在matlab中利用丰富的python开源资源,探索了如下内容: 1)在matlab中直接调用tensorflow函数: 2)在matlab中调用tensorflow的python程序,结合mat ...
- matlab自定义函数如何报错,MATLAB自定义函数
MATLAB自定义函数形式 function [a,b,c] = funname(x1,x2,x3) 输入变量 对于输入变量,MATLAB可以识别输入变量的个数,通过nargin来记录当前输入变量个数 ...
- matlab作动态函数曲线图,[转载]Matlab中使用Plot函数动态画图方法总结
本帖最后由 sonictl 于 2012-12-31 12:18 编辑 请删除我 清楚超靠靠靠 没办法,一会儿限制这不能发表,那不能发表的.... [转载]Matlab中使用Plot函数动态画图方法总 ...
- matlab制作动画并保存,[转载]Matlab中动画的实现、制作和保存(转载Matlab技术论坛)...
Matlab中动画的实现.制作和保存(转载Matlab技术论坛) 本帖由Matlab技术论坛原创,原帖参见 http://www.matlabsky.com/thread-592-1-1.html 光 ...
- matlab中stract用法_求matlab中strcat用法
MATLAB概述 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言 ...
- matlab中图像映射实例,[转载]Matlab实现多种图像配准(转)
本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...
最新文章
- 面试官:为什么HTTPS是安全的?
- Retinaface c++
- hyperic hq mysql_网络管理工具Hyperic HQ监控MySQL配置
- 在线旅游的2020:洗牌重组、直播自救、跨界面敌
- gcc优化的简单说明
- 这个 Python 代码自动补全神器搞得我卧槽卧槽的
- 【Matplotlib】【Python】如何使用matplotlib绘制折现图
- LeetCode OJ - Best Time to Buy and Sell Stock II
- css3 呼吸的莲花_CSS3制作莲花盛开动画
- c++ java setobjectarrayelement_java中jni的使用:C/C++操作java中的数组
- Jquery实现可拖拽的树菜单
- php openssl.so加载,LINUX下PHP编译添加相应的动态扩展模块so(不需要重新编译PHP,以openssl.so为例)...
- 【高速PCB电路设计】8.DDR模块设计实战
- 靠java_基础不牢靠,何以争朝夕?Java基础面试82道详细解析!(一)
- 中职高考计算机专业真题,中职高考计算机试题及答案
- 使用Java编写自己的区块链
- 点餐系统后台服务器部署,Java后台——点餐小程序在服务器上运行点餐系统供别人访问...
- java对于删除文件失败,的处理方式
- 服务器系统日志事件id41,系统莫名重启,系统相关日志中出现事件ID:41,1001,6008,请问这是什么原因导致...
- 从百团大战到大兵团作战,天猫“三纵两横”将为商家带来哪些变革
热门文章
- f452虚拟服务器,中兴f452网关,超级用户的密码如何获得,启动路由功能
- 使用git进行word版本管理
- WIN10系统 screencap截图屏幕会自动放大怎么办
- 计算机开机错误62,电脑出现Error 1962怎么办 电脑启动报错Error 1962的解决方案介绍...
- linux服务器运维基础学习
- 直播svga礼物特效怎样制作流程
- 【Android项目实战 | 从零开始写app(一)】 创建项目
- Mahony 互补滤波算法
- 图片查看器-Python-tkinter
- 手机号码好坏什么软件测试,测试你的手机号码好不好(很准哦)