红外图像处理之直方图均衡的matlab源码与效果验证
红外图像是热辐射成像,由于场景中的目标与背景的温差相对较小,红外图像的动态范围大、对比度
低, 信噪比也较可见光图像的低。为了能够从红外图像中正确地识别出目标,必须对红外图像进行增强处理。一般红外探测器的性能区分于材料,氧化钒等高端的灵敏度 高相应的价格较贵,多晶硅的一般灵敏度要差但价格相对较低,也不会太受禁运封锁购买比较方便,也是非制冷做成的热像仪没有制冷电路会节省成本、降低功耗和 减小体积。一般探测精度为50mk左右,常温下的温度变化只有二三十度,产生的灰度响应变化一般也就几十个灰度级。这样的图像很难区别出各种图像内部的物 体,所以需要进行真个动态范围的拉伸,将图像处理的更家锐,图像清楚容易辨识。
clear;
clc;
%%%%%%%%%%%%%%单帧图像取值%%%%%%%%%%%%%
save3 =zeros(3,2,'uint16');
fid = textread('3006b.txt','%s');
fid1 = hex2dec(fid);
save3(:,:) = reshape(fid1,3,2);
sample1 = zeros(3,2,'double');
sample1 = save3(:,:);
%%%%%%%%%%%%%%%找出最大灰度%%%%%%%%%%%%%
line_buff = zeros(1,6,'uint16');
line_buff = reshape(sample1,1,6);
for i= 2:6
max = line_buff(1,1);
if line_buff(1,i) > max
max = line_buff(1,i);
end
end
%%%%%%%%%%%%%%%找出最小灰度%%%%%%%%%%%%%
for i= 2:6
min = line_buff(1,1);
if line_buff(1,i) < min
min = line_buff(1,i);
end
end
%%%%%%%%%%%%%%%设定拉伸的灰度级数%%%%%%%%%%%%%%%%%%%
H_tho = 256;
L_tho = 0;
%%%%%%%%%%%%%%%计算拉伸比率%%%%%%%%%%%%%%%%%%%%
sample2 = zeros(1,6,'uint16');
rat = (H_tho-L_tho)/(max-min);
for i=1:6
sample2(1,i) = line_buff(1,i)*rat;
end
for i= 1:6
sample2(1,i) =sample2(1,i) - min*rat;
end
%%%%%%%%%%%%%%%%显示效果%%%%%%%%%%%%%%%%%%%%%%%%
sample3 = reshape(sample2,3,2);
subplot(2,2,1),imshow(uint8(sample1));title('拉伸前');
subplot(2,2,2),imshow(uint8(sample3));title('拉伸后');
数据文件上传嫌麻烦就没传,有兴趣的可以找我索取
QQ:356636122
最新文章
- jquety
- PHP之PhpDocument的使用
- asp.Net获取脚本传过来的参数的方法汇总
- 获取DLL中的方法名称
- 简明python教程 --C++程序员的视角(二):函数及作用域
- 【 D3.js 入门系列 --- 4 】 如何使用scale(比例)
- C# 串口操作 ---- 系列文章
- C++使用类型代替枚举量
- ASP.NET程序从IIS6移植到IIS7时出现500.22错误
- IDE idea 更换项目的JDK步骤
- 转发:为什么Android使用弱加密算法?
- [原创]C语言里为何会有“2+2=5”的结果
- SilkTest高级进阶系列6-motif tag
- java 并发多线程异步
- Marriage Match IV HDU - 3416
- Self Host 使用 Exceptionless 实时监控程序运行日志服务
- oracle入坑日记<;三>;用户详解(角色理解)
- unittest模块小结
- Codeforces Global Round 1 自闭记
- centos配置小程序https和wss协议
热门文章
- The method Inflate() in android
- Gradle项目学习 &; HttpAsyncClient学习 &; CountDownLatch学习
- solr File Upload ";Unsupported ContentType: application/vnd.ms-excel Not in: [application/xml, application/csv, application/json, text/json, text/csv, text/xml, application/javabin]";,
- Java 多线程之 synchronized 和 volatile 的比較
- Windows利用命令行快速清除以及建立密码
- C++常考面试题汇总(持续更新中)
- C语言-字符串操作函数
- ORCAD常见DRC错误
- Git/GitHub仓库管理常用的3条命令
- unity,实现屏幕后处理的两种方法