紅外圖像盲元補償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('盲元補償後');


wKiom1MCF27Bavb6AAERcBTMcW0814.jpg




可以自己造圖才跑,數據文件上傳太繁瑣了就沒上傳,如果有興趣可以找我來要。

QQ:356636122












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章