数字图像红外图像处理matlab实现.docx

上传人:b****5 文档编号:6793820 上传时间:2023-01-10 格式:DOCX 页数:12 大小:624.52KB
下载 相关 举报
数字图像红外图像处理matlab实现.docx_第1页
第1页 / 共12页
数字图像红外图像处理matlab实现.docx_第2页
第2页 / 共12页
数字图像红外图像处理matlab实现.docx_第3页
第3页 / 共12页
数字图像红外图像处理matlab实现.docx_第4页
第4页 / 共12页
数字图像红外图像处理matlab实现.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数字图像红外图像处理matlab实现.docx

《数字图像红外图像处理matlab实现.docx》由会员分享,可在线阅读,更多相关《数字图像红外图像处理matlab实现.docx(12页珍藏版)》请在冰豆网上搜索。

数字图像红外图像处理matlab实现.docx

数字图像红外图像处理matlab实现

1数字图像,红外图像处理,高温定标点校正程序

%读取高温定标点二进制数据,将数据信息存储到pic2矩阵里

clc;clear;

a1=fopen('handdat_34.dat','rb','b');%打开二进制数据信息

pic1=fread(a1,[200200]);%将二进制数据信息读出到200*200的多维数组里面

a2=fopen('hidat_62.dat','rb','b');

pic2=fread(a2,[200200]);

a3=fopen('low31dat_62.dat','rb','b');

pic3=fread(a3,[200200]);

b=mean2(pic2);%求pic2的平均值将结果返回给b

A=b*ones(200);

K=A./pic2;%计算校正因子200*200矩阵数组K

pic2_K_hi=K.*pic2;%高稳定点校正高温图片

pic3_K_hi=K.*pic3;%高稳定点校正低温图片

pic1_K_hand_hi=K.*pic1;%高稳定点校正目标成像图片

figure

(1);

subplot(131),imshow(uint8(pic2_K_hi),[]),title('高温定点校正高温图片');;

subplot(132),imshow(uint8(pic3_K_hi),[]),title('高温定点校正低温图片');

subplot(133),imshow(uint8(pic1_K_hand_hi),[]),title('高温定点校正目标成像图片');

figure

(2);

subplot(131),mesh(1:

200,1:

200,roundn(pic2_K_hi,-3)),title('高温定点校正高温三维图');

subplot(132),mesh(1:

200,1:

200,pic3_K_hi),title('高温定点校正低温三维图');

subplot(133),mesh(1:

200,1:

200,pic1_K_hand_hi),title('高温定点校正目标成像三维图');

colormapgray;%选为灰度

2字图像,红外图像处理,低温定标点校正程序

%读取低温定标点二进制数据,将数据信息存储到pic3矩阵里

clear;clc;

a1=fopen('handdat_34.dat','rb','b');%打开二进制数据信息

pic1=fread(a1,[200200]);%将二进制数据信息读出到200*200的多维数组里面

a2=fopen('hidat_62.dat','rb','b');

pic2=fread(a2,[200200]);

a3=fopen('low31dat_62.dat','rb','b');

pic3=fread(a3,[200200]);

b=mean2(pic3);%求pic2的平均值将结果返回给b

A=b*ones(200);

K=A./pic3;%计算校正因子200*200矩阵数组K

pic2_K_low=K.*pic2;%低温定标点校正高温图片

pic3_K_low=K.*pic3;%低温定标点校正低温图片

pic1_K_hand_low=K.*pic1;%低温定标点校正目标成像图片

figure

(1);

subplot(131),imshow(pic2_K_low,[]);title('低温定标点校正高温图片');

subplot(132),imshow(uint8(pic3_K_low),[]);title('低温定点校正低温图片');

subplot(133),imshow(pic1_K_hand_low,[]);title('低温定点校正目标成像图片');

figure

(2);

subplot(131),mesh(1:

200,1:

200,pic2_K_low),title('低温定标点校正高温图片');

subplot(132),mesh(1:

200,1:

200,roundn(pic3_K_low,-3)),title('低温定点校正低温图片');

subplot(133),mesh(1:

200,1:

200,pic1_K_hand_low),title('低温定点校正目标成像图片');

colormapgray;%选为灰度

 

 

3Matlab程序实现,图像处理,红外图像处理,两点校正高温或低温图片--红外图像校正

%两点校正程序文件

clear;clc;

a1=fopen('handdat_34.dat','rb','b');%打开二进制数据信息

pic1=fread(a1,[200200]);%将二进制数据信息读出到200*200的多维数组里面

a2=fopen('hidat_62.dat','rb','b');

pic2=fread(a2,[200200]);

a3=fopen('low31dat_62.dat','rb','b');

pic3=fread(a3,[200200]);

%求解阵列焦平面高温定标点相应均值A1

A1=mean(pic2(:

));%求pic2的平均值将结果返回给b

%A1=b1*ones(200);

%K1=A1./pic2;%高温定点校正因子200*200矩阵数组K

%求解阵列焦平面低温定标点相应均值A2

A2=mean(pic3(:

));%求pic2的平均值将结果返回给b

%A2=b2*ones(200);

%K2=A2./pic3;%计算校正因子200*200矩阵数组K

Gij=(A1-A2)./(pic2-pic3);%求增益校正系数Gij

Oij=(A1.*pic3-A2.*pic2)./(pic2-pic3);%求偏置校正系数Oij

%两点校正高温图片

Yij_hi=Gij.*pic2-Oij;

%两点校正低温图片

Yij_low=Gij.*pic3-Oij;

%两点校正目标成像图片

Yij_handdat=Gij.*pic1-Oij;

figure

(1);

subplot(131),imshow(Yij_hi,[]),title('两点校正高温图片');

subplot(132),imshow(Yij_low,[]),title('两点校正低温图片');

subplot(133),imshow(uint8(Yij_handdat),[]),title('两点校正目标成像图片');

figure

(2);

subplot(131),mesh(1:

200,1:

200,roundn(Yij_hi,-3)),title('两点校正高温图片三维图');

subplot(132),mesh(1:

200,1:

200,roundn(Yij_low,-3)),title('两点校正低温图片三维图');

subplot(133),mesh(1:

200,1:

200,Yij_handdat),title('两点校正目标成像图片三维图');

colormapgray;%选为灰度

%colormapgray;%选为灰度

Yij_handdat=uint8(Yij_handdat);

save('Yij_handdat','Yij_handdat')

4直方图均衡化,图像处理,matlab实现

%直方图均衡化增强图像

clc;clear;

loadYij_handdat;

I=Yij_handdat;

J=histeq(I,256);%对I进行直方图均衡化

[M,N]=size(I);

figure

(1);

subplot(131),imshow(I),title('两点校正后的图像');

subplot(132),imshow(J),title('直方图均衡化后的图像');

subplot(133),mesh(1:

M,1:

N,double(J)),title('直方图均衡化后三维图');

figure

(2);

subplot(121),imhist(I,90),title('两点校正后的直方图');

subplot(122),imhist(J),title('均衡化后的直方图');

 

5红外图像,分段线性变换,matlab实现

%分段线性变换

clc;clear;

%X1=imread('liang_dian_jiaozheng.png');

loadYij_handdat.mat;

X1=Yij_handdat;

%X1=rgb2gray(X1);

f0=0;g0=0;%对图像灰度进行分段的点

f1=123;g1=70;

f2=240;g2=150;

f3=256;g3=220;

figure,plot([f0,f1,f2,f3],[g0,g1,g2,g3])

axistight,xlabel('f'),ylabel('g')

title('intensitytransformation')%绘制变换曲线

r1=(g1-g0)/(f1-f0);

b1=g0-r1*f0

r2=(g2-g1)/(f2-f1);

b2=g1-r2*f1;

r3=(g3-g2)/(f3-f2);

b3=g2-r3*f2;

[m,n]=size(X1);

X2=double(X1);

fori=1:

m

forj=1:

n

f=X2(i,j);

g(i,j)=0;

if(f>=f1)&(f<=f2)

g(i,j)=r1*f+b2;

elseif(f>=f2)&(f<=f3)

g(i,j)=r3*f+b3;

end

end

end

figure;

subplot(131),imshow(X1),title('两点校正后的图像');

subplot(132),imshow(g,[]),title('分段线性变换后的图像');

subplot(133),mesh(roundn(g,-3)),title('分段线性变换后图像三维图');

 

6.选择分段线性变换进行灰度处理——自选算法

将图像灰度区间分成两段乃至多段,然后分别作灰度变换处理以达到更加鲜明的对比效果,同时不失图像原有的信息,

分段线性变换的函数表达式为:

在公式(4-1)中,(t1,f(t1))和(t2,f(t2))是图4.1中两个转折点坐标。

其中min代表原始图像中最小的灰度级0

7.一点温度定标校正算法

一点温度定标算法是最早的一种非均匀校正算法,假设这些图像都是在一

个温度范围变化不大的环境中,即成像系统所在的环境温度变化不大。

一点校

正算法只是对各探测器单元响应特性的不一致性进行了校正,它只适用于各探

测单元的增益系数非常接近或者辐射照度变化甚小的场合,而当目标场景的辐

射照度离定标点较大时,校正效果就显著变差。

选取特定黑体辐射照度为定标点,对所有的N个探测单元灰度值求平均:

,则在这个辐射照度下各探测单元输出增益可以这样计算得:

,其中,K(i,j)为红外图像非均匀性校正的校正因子。

则以后的红外图像可以利用

进行校正,其中y(i,j)为校正后图像中坐标为(i,j)探测单元的实际输出,x(i,j)为原始图像中坐标为(i,j)探测单元的灰度值。

2.4.2二点温度定标校正算法

假设各阵列元的响应特性在所关心的温度范围内是线性的,在时间上是稳

定的,并假定l/f噪声的影响较小,则非均匀性引入的噪声为固定模式的乘性和加性噪声。

在此条件下焦平面阵列元在均匀辐射背景条件下的输出为:

Ø

其中:

Ø表示辐射通量,Uij和Vij是坐标为阵列元的增益(响应率)和偏置

量(暗电流),虽然对每一个阵元的响应都不是直线的,但在一定的范围内可

以近似的认为,和实际方便对问题的处理,对每一个阵列元,lUij和Vij的值可以

认为都是固定的,并且不随时间变化。

因此采用二点定标校正即可实现红外焦

平面阵列图像的非均匀性校正,即:

Gij和Oij分别是二点定标校正算法的增益校正系数和偏置校正系数,Yjj为校

正后的输出,Xjj(Ø)是辐射通量为Ø的各个阵列元的灰度输出值。

二点定标校正

算法是利用焦平面各阵列元在温度不同的两个黑体(高温TH和低温TL)均匀辐

射下的响应输出,求得Gij和Oij,从而实现非均匀性校正。

二点定标校正算法的具体实现:

将所有阵列元在高温TH和低温TL均匀黑

体辐射的响应分别标准化为VH和VL,即:

其中VH和VL可以选取在高温TH和低温TL均匀辐射下焦平面响应输出的均值。

Xij(ØH)和Xij(ØL)分别为在高温TH和低温TL均匀辐射背景下像元(ij)的响应(灰度值)输出。

增益校正系数和偏置校正系数即可通过下式计算

将各阵列元的增益校正系数Gij偏置校正系数Oij预先存储起来,在探测

过程中以此校正系数对探测器的响应值按式(2_4.5)即:

对各像元的输出依次进行校正。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1