《数字图像-红外图像处理-matlab实现.doc》由会员分享,可在线阅读,更多相关《数字图像-红外图像处理-matlab实现.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数字图像,红外图像处理,matlab实现1数字图像,红外图像处理,高温定标点校正 程序%读取高温定标点二进制数据,将数据信息存储到pic2矩阵里clc;clear;a1=fopen(handdat_34。dat,rb,b); %打开二进制数据信息pic1=fread(a1,200 200); 将二进制数据信息读出到200*200的多维数组里面a2=fopen(hidat_62.dat,rb,b);pic2=fread(a2,200 200);a3=fopen(low31dat_62。dat,rb,b);pic3=fread(a3,200 200); b=mean2(pic2); %求pic2的
2、平均值将结果返回给bA=b*ones(200);K=A./pic2; 计算校正因子200200矩阵数组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) ,imsho
3、w(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(高温定点校正目标成像三维图);colormap gray; % 选为灰度2 字图像,红外图像处理,低温定标点校正
4、程序读取低温定标点二进制数据,将数据信息存储到pic3矩阵里clear;clc;a1=fopen(handdat_34。dat,rb,b); 打开二进制数据信息pic1=fread(a1,200 200); %将二进制数据信息读出到200*200的多维数组里面a2=fopen(hidat_62。dat,rb,b);pic2=fread(a2,200 200);a3=fopen(low31dat_62。dat,rb,b);pic3=fread(a3,200 200); b=mean2(pic3); 求pic2的平均值将结果返回给bA=bones(200);K=A./pic3; %计算校正因子20
5、0*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(低温定点校正目标成像图片); fi
6、gure(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(低温定点校正目标成像图片);colormap gray; 选为灰度3 Matlab程序实现,图像处理,红外图像处理,两点校正高温或低温图片-红外图像校正%两点校正程序文件clear;clc;a1=fopen(
7、handdat_34.dat,rb,b); %打开二进制数据信息pic1=fread(a1,200 200); %将二进制数据信息读出到200*200的多维数组里面a2=fopen(hidat_62。dat,rb,b);pic2=fread(a2,200 200);a3=fopen(low31dat_62。dat,rb,b);pic3=fread(a3,200 200); %求解阵列焦平面高温定标点相应均值A1A1=mean(pic2(:); 求pic2的平均值将结果返回给b A1=b1*ones(200); K1=A1。/pic2; 高温定点校正因子200200矩阵数组K 求解阵列焦平面低温
8、定标点相应均值A2A2=mean(pic3(:); 求pic2的平均值将结果返回给b% A2=b2ones(200); K2=A2./pic3; 计算校正因子200*200矩阵数组K Gij=(A1A2)./(pic2-pic3); %求增益校正系数GijOij=(A1.pic3-A2。pic2)。/(pic2pic3); %求偏置校正系数Oij %两点校正高温图片Yij_hi=Gij。*pic2-Oij; 两点校正低温图片Yij_low=Gij.pic3-Oij; 两点校正目标成像图片Yij_handdat=Gij.*pic1-Oij; figure(1);subplot(131),imsh
9、ow(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) ,
10、mesh(1:200,1:200,Yij_handdat),title(两点校正目标成像图片三维图);colormap gray; 选为灰度%colormap gray; 选为灰度Yij_handdat = uint8(Yij_handdat);save(Yij_handdat, Yij_handdat) 4 直方图均衡化,图像处理,matlab实现%直方图均衡化增强图像clc;clear;load Yij_handdat;I= Yij_handdat;J= histeq(I,256) ; 对I 进行直方图均衡化M,N=size(I);figure(1);subplot(131) ,imsho
11、w(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); lo
12、ad Yij_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)axis tight,xlabel(f),ylabel(g)title(intensitytransformation)绘制变换曲线 r1=(g1-g0)/(f1f0);b1=g0-r1*f0r2=(g2-g1)/(f2f1);b2=g1-r2f1;r3=(g3-g2)/(f3-f2
13、);b3=g2r3*f2;m,n=size(X1);X2=double(X1);for i=1:m for j=1:n f=X2(i,j); g(i,j)=0; if(f=f1)(f=f2) g(i,j)=r1f+b2; elseif(f=f2)(f=f3) g(i,j)=r3*f+b3; end endendfigure;subplot(131),imshow(X1),title(两点校正后的图像);subplot(132),imshow(g, ),title(分段线性变换后的图像);subplot(133),mesh(roundn(g,-3)),title(分段线性变换后图像三维图);6。
14、选择分段线性变换进行灰度处理自选算法将图像灰度区间分成两段乃至多段,然后分别作灰度变换处理以达到更加鲜明的对比效果,同时不失图像原有的信息,分段线性变换的函数表达式为: 在公式(4-1)中,(t1, f(t1))和(t2,f(t2))是图4.1中两个转折点坐标。其中min 代表原始图像中最小的灰度级0 min t1, max 代表原始图像中最大的灰度级t2 max 255。7.一点温度定标校正算法 一点温度定标算法是最早的一种非均匀校正算法,假设这些图像都是在一个温度范围变化不大的环境中,即成像系统所在的环境温度变化不大.一点校正算法只是对各探测器单元响应特性的不一致性进行了校正,它只适用于各
15、探测单元的增益系数非常接近或者辐射照度变化甚小的场合,而当目标场景的辐射照度离定标点较大时,校正效果就显著变差. 选取特定黑体辐射照度为定标点,对所有的N个探测单元灰度值求平均:,则在这个辐射照度下各探测单元输出增益可以这样计算得:,其中,K(i,j)为红外图像非均匀性校正的校正因子.则以后的红外图像可以利用 进行校正,其中y(i,j)为校正后图像中坐标为(i,j)探测单元的实际输出,x(i,j)为原始图像中坐标为(i,j)探测单元的灰度值.242二点温度定标校正算法 假设各阵列元的响应特性在所关心的温度范围内是线性的,在时间上是稳定的,并假定lf噪声的影响较小,则非均匀性引入的噪声为固定模式
16、的乘性和加性噪声。在此条件下焦平面阵列元在均匀辐射背景条件下的输出为: 其中:表示辐射通量,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_45)即:对各像元的输出依次进行校正。