红外图像盲元补偿matlab实现源码与效果验证
在国内红外公司绝大多数一直以来国外进口的成像芯片,能够进行红外芯片自助开发的电学应该只有大立光电和广微积电光学方法只有上海巨哥和一直未能产 品化的昆山光微电子。由于政治和历史原因,欧美对中国大陆还是实行武器以及相关的禁运。红外作为重要的军品广发应用于单兵夜视和武器制导也被有条件的封 锁。国内拿到的电学红外探测器一般为B类品或C类,这就会导致会有相对于A类品更多比率的盲元。B;类品盲元的比例一般为320*240 探测器在五十左 右。红外探测器本身的工艺成熟度也决定了了相对于cmos的可见光成像芯片更多的盲元。在可见光图像处理中一般已将无需盲元处理了。
对于盲元的定义,现在一般是定义为低于或高于平均相应的多少百分点。具体的百分点各公司研究所不近相同,也因应用的区域和行业不同而有所区别。
对于盲元处理一般采取的方式:
1.对于低硬件和运算周期的消耗,低复杂度一般采用相邻位像素直接替代、相邻位上下左右四位或周围八位像素进行差值运算。
2.对于资源多切要求高的应用,可以采用滤波找到边缘进行盲元位相应的趋势预测而不是简单的平均
本文只做原理示例 故采用第一种
一般盲元数相对于温度会呈现出线性上升的特性,故以下的处理方式可采用分段方式检测盲元,这里知识采用了一个温度段。产品上盲元的偏出平均响应比较多的是定位为偏出平均10%,本文为了效果明显就定的比较高。
具体源码如下:
clear;
clc;
%%%%%%%%%%%%%%低温单帧图像取值%%%%%%%%%%%%%
save3 =zeros(3,2,'uint16');
fid = textread('3005b.txt','%s');
fid1 = hex2dec(fid);
save3(:,:) = reshape(fid1,3,2);
sample1 = zeros(3,2,'double');
sample1 = save3(:,:);
subplot(2,2,1),imshow(uint8(sample1));
title('T1温度原始图');
%%%%%%%%高温单帧图像取值%%%%%%%%%%%%%%%
save3 =zeros(3,2,'uint16');
fid = textread('7005b.txt','%s');
fid1 = hex2dec(fid);
save3(:,:) = reshape(fid1,3,2);
sample2 = zeros(3,2,'double');
sample2= save3(:,:);
subplot(2,2,2),imshow(uint8(sample2));
title('T2温度原始图');
%%%%%%%%%%%%%%%计算平均响应率%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
avr1=sum(sample1(:))/(3*2);
avr2=sum(sample2(:))/(3*2);
avr_response = avr2 - avr1;
%%%%%%%%%%%%%%%设定门限%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
H_rat = 0.4;%定义盲元的象元偏差率
H_threshold = avr_response*(1+H_rat);%临界阈值上限
L_threshold = avr_response*(1-H_rat);%临界阈值下限
%%%%%%%%%%%%%%计算盲元%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sample3 = reshape(sample1,1,6);
sample4 = reshape(sample2,1,6);
signal_pixel = zeros(1,6,'double');
for i = 1:6;
signal_pixel(1,i) = sample4(1,i)- sample3(1,i);%各象元响应率
if signal_pixel(1,i)>H_threshold || signal_pixel(1,i)<L_threshold
signal_pixel(1,i) = signal_pixel(1,i-1);%盲元后一象元替代
end
end
%%%%%%%%%%%%%%显示盲元补偿后效果%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sample3 = zeros(3,2,'double');
sample3 = reshape(signal_pixel,3,2);
subplot(2,2,3),imshow(uint8(sample3));
title('盲元补偿后');
可以自己造图才跑,数据文件上传太繁琐了就没上传,如果有兴趣可以找我来要。
QQ:356636122
红外图像盲元补偿matlab实现源码与效果验证的更多相关文章
- 红外图像处理之直方图均衡的matlab源码与效果验证
红外图像是热辐射成像,由于场景中的目标与背景的温差相对较小,红外图像的动态范围大.对比度 低, 信噪比也较可见光图像的低.为了能够从红外图像中正确地识别出目标,必须对红外图像进行增强处理.一般红外探测 ...
- 菜鸟系列Fabric源码学习 — MVCC验证
Fabric 1.4 源码分析 MVCC验证 读本节文档之前建议先查看[Fabric 1.4 源码分析 committer记账节点]章节. 1. MVCC简介 Multi-Version Concur ...
- OpenCV3三种超像素分割算法源码以及效果
OpenCV3中超像素分割算法SEEDS,SLIC, LSC算法在Contrib包里,需要使用Cmake编译使用.为了方便起见,我将三种算法的源码文件从contrib包里拎了出来,可以直接使用,顺便比 ...
- AccessTokenValidation3 源码分析 jwttoken验证流程图
processon分享地址:https://www.processon.com/view/link/5c6a0b59e4b08a7683c40fc5
- python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法
form表单的校验方法is_valid() 点开我们发现这个函数里面只有两个方法方法,最终返回True or False 我们点进.is_bound属性,里面判断传输的数据不是空和上传文件不是空 点进 ...
- 第二篇:白话tornado源码之待请求阶段
上篇<白话tornado源码之一个脚本引发的血案>用上帝视角多整个框架做了一个概述,同时也看清了web框架的的本质,下面我们从tornado程序的起始来分析其源码. 概述 上图是torna ...
- [AYUI]QQ管家源码已经开源
(0-50元 黑色字体 享受AY 1周的 ayui 技术问答) (50-100元 绿色字体 享受AY 15天的 ayui 技术问答) (100-150元 蓝色字体 享受AY 20天的 ayui ...
- MyBatis 源码分析 - 配置文件解析过程
* 本文速览 由于本篇文章篇幅比较大,所以这里拿出一节对本文进行快速概括.本篇文章对 MyBatis 配置文件中常用配置的解析过程进行了较为详细的介绍和分析,包括但不限于settings,typeAl ...
- tornado源码分析系列一
先来看一个简单的示例: #!/usr/bin/env python #coding:utf8 import socket def run(): sock = socket.socket(socket. ...
随机推荐
- Android实现二维码扫描登录网页
之前写过一个二维码扫描demo,用的Zxing的框架,点击下载.兴许扫描二维码中出现一些问题,比方解决压缩图片.调整扫描窗体大小等等. 兴许单位要求做扫描登录实现,发现难点就是怎么知道你扫描的 ...
- 【机器学习 & 数据挖掘 通俗介绍】
如何向小白介绍何谓机器学习和数据挖掘?买回芒果他就懂了 JasonZheng • 2013-01-07 22:18 买芒果 嘴馋的你想吃芒果了,于是你走到水果摊,挑了几个让老板过过秤,然后你再根据 ...
- Solr报错Index locked for write for core '***'. Solr now longer supports forceful unlocking via 'unlockOnStartup'
unlockOnStartup 告知 Solr 忽略在多线程环境中用来保护索引的锁定机制.在某些情况下,索引可能会由于不正确的关机或其他错误而一直处于锁定,这就妨碍了添加和更新.将其设置为 true ...
- centos 7 安装gcc g++
yum install gcc gcc-c++ over. ps:如果系统报yum命令未找到,退出重新登陆试试root.
- J2EE之EJB
EJB是sun的JavaEEserver端组件模型,最大的用处是部署分布式应用程序.EJB把使用java开发的server组件的部署和开发进行标准化. 凭借java跨平台的优势.用EJB技术部署的分 ...
- 用尽洪荒之力整理的Mysql数据库32条军规(转)
今天上午吐血整理了Oracle SQL性能优化的40条军规,其中很多规则也是适用于Mysql的,结果今晚发现这一篇文章——用尽洪荒之力整理的Mysql数据库32条军规,和我的竟有异曲同工之妙,当然不同 ...
- jetty.xml解析
我们知道jetty有一种启动方式是在jetty的根目录中运行命令行:java -jar start.jar,这个命令会调用apache的XmlConfiguration工具类作为启动类,这个类会默认读 ...
- UINavigationController(二)
在使用UINavigtionController的时候,常常会弄不清哪些属性是UINavigationController的,哪些属性是UIViewController的.并且在更改导航栏和工具栏的样 ...
- dubbo_分布式框架dubbox介绍
1.Dubbo概述Dubbo是阿里巴巴开源出来的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及作为SOA服务治理的方案.简单的说,dubbo就是个服务框架,如果没有分布式的 ...
- 初识Quartz(三)
本文将介绍CronTrigger的使用方法,CronTrigger相比 SimpleTrigger可以支持更复杂的作业计划.cron这一观念来自UNIX,在UNIX中,cron是一个运行于后台的守护程 ...