├── .gitignore ├── ILCM.m ├── LIG.m ├── MLCM_fun.m ├── MPCM_fun.m ├── MS_AAGD-master.zip ├── MS_LCM-master.zip ├── MS_PCM-master.zip ├── MS_PCM_CPP-master.zip ├── README.md ├── RLCM-master.zip ├── RLCM.m ├── aadcddfunc.m ├── acdmfunc.m ├── acdmgcfunc.m ├── acdmsort.m ├── admdfunc.m ├── amwlcmfunc.m ├── bwfunc.m ├── cfarfunc.m ├── cpy_RLCM.m ├── cpy_aadcdd.m ├── cpy_admd.m ├── cpy_amwlcmfunc.m ├── cpy_final_AAGD.m ├── cpy_lcmfunc.m ├── cpy_lef.m ├── cpy_lr.m ├── cpy_maxmed.m ├── cpy_mgdwe.m ├── cpy_mpcm.m ├── cpy_tophat.m ├── data ├── 1.bmp ├── 10.bmp ├── 11.bmp ├── 12.bmp ├── 13.bmp ├── 14.bmp ├── 15.bmp ├── 16.bmp ├── 17.bmp ├── 18.bmp ├── 19.bmp ├── 2.bmp ├── 20.bmp ├── 21.bmp ├── 22.bmp ├── 23.bmp ├── 24.bmp ├── 25.bmp ├── 3.bmp ├── 4.bmp ├── 5.bmp ├── 6.bmp ├── 7.bmp ├── 8.bmp ├── 9.bmp └── readme.txt ├── dgradfunc.m ├── dlcmfunc.m ├── dsbmfunc.m ├── elcmfunc.m ├── final_AAGD.m ├── hbmlcmfunc.m ├── lcmfunc.m ├── leffunc.m ├── localmean.m ├── lrfunc.m ├── main.m ├── maxMean.m ├── maxMed.m ├── mgdwe.m ├── mlhmfunc.m ├── nhbf_ilcmfunc.m ├── nlcmfunc.m ├── paper ├── 2014 A Local Contrast Method for Small Infrared Target Detection.pdf ├── 2014 A Robust Infrared Small Target Detection Algorithm Based on Human Visual System.pdf ├── 2016 Infrared Small-Target Detection Using Multiscale Gray Difference Weighted Image Entropy -code.pdf ├── 2016 Infrared small target detection via line-based reconstruction and entropy-induced suppression -code -txt.pdf ├── 2016 Multiscale patch-based contrast measure for small infrared target detection.pdf ├── 2016 Small infrared target detection based on weighted local difference measure -code.pdf ├── 2018 Fast and robust small infrared target detection using absolute directional mean difference algorithm -code.pdf ├── 2018 High-Boost-Based Multiscale Local Contrast Measure for Infrared Small Target Detection -code -txt.pdf ├── 2018 Infrared Small Target Detection Utilizing the Multiscale Relative Local Contrast Measure -code -txt.pdf ├── 2018 Infrared small target detection based on local intensity and gradient properties.pdf ├── 2018 Tiny and Dim Infrared Target Detection Based on Weighted Local Contrast - txt.pdf ├── 2019 A Local Contrast Method for Infrared Small-Target Detection Utilizing a Tri-Layer Window -code.pdf ├── 2019 Infrared Small Target Detection Based on Multiscale Local Contrast Measure Using Local Energy Factor -code.pdf ├── 2019 Small infrared target detection using absolute average difference weighted by cumulative directional derivatives - code -txt.pdf ├── 2020 A Double-Neighborhood Gradient Method for Infrared Small Target Detection.pdf └── 2020 基于双层局部对比度的红外弱小目标检测方法.pdf ├── tllcm.m ├── tophatfunc.m └── wldmfunc.m /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.rar 3 | tophat.rar 4 | -------------------------------------------------------------------------------- /ILCM.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/ILCM.m -------------------------------------------------------------------------------- /LIG.m: -------------------------------------------------------------------------------- 1 | % Infrared Small Target Detection Based on Local Intensity and Gradient Properties 2 | function re = LIG(img) 3 | % parameter set 4 | k=0.2; 5 | N=11; 6 | % set your image path here 7 | img = img(:,:,1); 8 | [r,c]=size(img); 9 | img=double(img); 10 | %% 11 | op11 = ones(N, N); 12 | op11(6, 6) = 0; 13 | op11 = op11 / sum(op11(:)); 14 | m11 = imfilter(img, op11, 'symmetric'); 15 | Imap = img - m11; 16 | Imap(Imap<0) = 0; 17 | %% 18 | grad1=zeros(r,c);% 19 | grad2=zeros(r,c); 20 | grad3=zeros(r,c); 21 | grad4=zeros(r,c); 22 | Gmap=zeros(r,c); 23 | op1 = [ 0,0,1; 24 | 0,-1,0; 25 | 0,0, 0]; 26 | op2 = [ 0,0,0; 27 | 0,-1,0; 28 | 0,0, 1]; 29 | op3 = [ 0,0,0; 30 | 0,-1,0; 31 | 1,0, 0]; 32 | op4 = [1, 0, 0; 33 | 0,-1,0; 34 | 0,0, 0]; 35 | % We took four directions to simplify the calculation 36 | G1=imfilter(img, op1, 'replicate'); 37 | G2=imfilter(img, op2, 'replicate'); 38 | G3=imfilter(img, op3, 'replicate'); 39 | G4=imfilter(img, op4, 'replicate'); 40 | 41 | Mapscale=(N-1)/2; 42 | Scale=Mapscale+1; 43 | for i=Scale:r-Scale 44 | for j=Scale:c-Scale 45 | %-------------------------------------- 46 | C1=G1(i:i+Mapscale,j-Mapscale:j); 47 | [x0,v0]=find(C1(:)>0); 48 | grad1(i,j)=sum(C1(x0).^2)/(length(x0)+0.001); 49 | %-------------------------------------- 50 | C2=G2(i-Mapscale:i,j-Mapscale:j); 51 | [x1,v1]=find(C2(:)>0); 52 | grad2(i,j)=sum(C2(x1).^2)/(length(x1)+0.001); 53 | %-------------------------------------- 54 | C3=G3(i-Mapscale:i,j:j+Mapscale); 55 | [x2,v2]=find(C3(:)>0); 56 | grad3(i,j)=sum(C3(x2).^2)/(length(x2)+0.001); 57 | %-------------------------------------- 58 | C4=G4(i:i+Mapscale,j:j+Mapscale); 59 | [x3,v3]=find(C4(:)>0); 60 | grad4(i,j)=sum(C4(x3).^2)/(length(x3)+0.001); 61 | 62 | dnmax=max([grad1(i,j),grad2(i,j),grad3(i,j),grad4(i,j)]); 63 | dnmin=min([grad1(i,j),grad2(i,j),grad3(i,j),grad4(i,j)]); 64 | if((dnmin/dnmax)0; 86 | out=double(tt).*out; 87 | 88 | end 89 | 90 | -------------------------------------------------------------------------------- /aadcddfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/aadcddfunc.m -------------------------------------------------------------------------------- /acdmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/acdmfunc.m -------------------------------------------------------------------------------- /acdmgcfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/acdmgcfunc.m -------------------------------------------------------------------------------- /acdmsort.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/acdmsort.m -------------------------------------------------------------------------------- /admdfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/admdfunc.m -------------------------------------------------------------------------------- /amwlcmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/amwlcmfunc.m -------------------------------------------------------------------------------- /bwfunc.m: -------------------------------------------------------------------------------- 1 | function bw = bwfunc(re) 2 | mm = 1; 3 | m =mean2(re); 4 | s = std2(re); 5 | maxv = max(re(:)); 6 | switch mm 7 | case 1 8 | T = m + 0.5*(maxv - m); 9 | case 2 10 | ratio = 0.6; 11 | T = ratio * maxv; 12 | case 3 13 | ratio = 3; 14 | T = m+ ratio*s; 15 | end 16 | bw = re> T; 17 | end -------------------------------------------------------------------------------- /cfarfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/cfarfunc.m -------------------------------------------------------------------------------- /cpy_RLCM.m: -------------------------------------------------------------------------------- 1 | % Infrared small target detection utilizing the multiscale relative local contrast measure 2 | clc; 3 | clearvars; 4 | close all; 5 | for kk = 1 6 | fold = '.\data\';% 27 images 7 | try 8 | img = imread([fold, num2str(kk), '.jpg']); 9 | catch 10 | img = imread([fold, num2str(kk), '.bmp']); 11 | end 12 | img = img(:,:,1); 13 | out= RLCM(img); 14 | figure, imshow(img); 15 | figure, imshow(out, []); 16 | figure, surf(out); 17 | end -------------------------------------------------------------------------------- /cpy_aadcdd.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/cpy_aadcdd.m -------------------------------------------------------------------------------- /cpy_admd.m: -------------------------------------------------------------------------------- 1 | % Small infrared target detection using absolute average difference weighted by cumulative directional derivatives 2 | clc; 3 | clearvars; 4 | close all; 5 | wflag = 1; 6 | for kk = 1 7 | fold = '.\data\';% 27 images 8 | try 9 | img = imread([fold, num2str(kk), '.jpg']); 10 | catch 11 | img = imread([fold, num2str(kk), '.bmp']); 12 | end 13 | img = img(:,:,1); 14 | re = admdfunc(img); 15 | bw = bwfunc(re); 16 | if wflag 17 | refold = '.\'; 18 | if ~exist(refold, 'dir') 19 | mkdir(refold); 20 | end 21 | imwrite(uint8(img), [refold, num2str(kk), '1.png']); 22 | imwrite(uint8( mat2gray(re) * 255), [refold, num2str(kk), '2.png']); 23 | imwrite(bw, [refold, num2str(kk), '3.png']); 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /cpy_amwlcmfunc.m: -------------------------------------------------------------------------------- 1 | % Tiny and Dim Infrared Target Detection Based on Weighted Local Contrast 2 | clearvars; 3 | close all; 4 | clc; 5 | flag = 0; 6 | wflag = 1; 7 | channel = 1; 8 | readimg; 9 | for kk = 1 10 | fold = '.\data\';% 27 images 11 | try 12 | img = imread([fold, num2str(kk), '.jpg']); 13 | catch 14 | img = imread([fold, num2str(kk), '.bmp']); 15 | end 16 | img = img(:,:,1); 17 | re = amwlcmfunc(img); 18 | bw = bwfunc(re); 19 | if flag 20 | figure; imshow(re, []); 21 | figure; imshow(bw); 22 | end 23 | if wflag 24 | refold = '.\'; 25 | if ~exist(refold, 'dir') 26 | mkdir(refold); 27 | end 28 | imwrite(uint8(img), [refold, num2str(kk), '1.png']); 29 | imwrite(uint8( mat2gray(re) * 255), [refold, num2str(kk), '2.png']); 30 | imwrite(bw, [refold, num2str(kk), '3.png']); 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /cpy_final_AAGD.m: -------------------------------------------------------------------------------- 1 | % Small infrared target detection using absolute average difference weighted by cumulative directional derivatives 2 | channel = 1; 3 | readimg; 4 | out=final_AAGD(img,[19,19,19,19],[3,5,7,9]); 5 | figure, imshow(out, []); -------------------------------------------------------------------------------- /cpy_lcmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/cpy_lcmfunc.m -------------------------------------------------------------------------------- /cpy_lef.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/cpy_lef.m -------------------------------------------------------------------------------- /cpy_lr.m: -------------------------------------------------------------------------------- 1 | % Infrared small target detection via line-based reconstruction and entropy-induced suppression 2 | clearvars; 3 | close all; 4 | clc; 5 | flag = 1; 6 | wflag = 1; 7 | channel = 1; 8 | readimg; 9 | for kk = 1 10 | fold = '.\data\';% 27 images 11 | try 12 | img = imread([fold, num2str(kk), '.jpg']); 13 | catch 14 | img = imread([fold, num2str(kk), '.bmp']); 15 | end 16 | img = img(:,:,1); 17 | img = double(img); 18 | img = ones(500, 500); 19 | img(:, 1:250) = 100; 20 | img(:, 251:end) = 180; 21 | img(100:104, 100:104) = 100 +100* fspecial('gaussian', [5, 5]); 22 | img = img(:,:,1); 23 | [ re, re1, re2] = lrfunc(img); 24 | bw = bwfunc(re); 25 | if flag 26 | figure; imshow(uint8(img)); 27 | figure; mesh(img); 28 | figure; imshow(re, []); 29 | figure; imshow(re1, []); 30 | figure; imshow(re2, []); 31 | end 32 | if wflag 33 | refold = '.\' 34 | if ~exist(refold, 'dir') 35 | mkdir(refold); 36 | end 37 | imwrite(uint8(img), [refold, num2str(kk), '1.png']); 38 | imwrite(uint8( mat2gray(re) * 255), [refold, num2str(kk), '2.png']); 39 | imwrite(bw, [refold, num2str(kk), '3.png']); 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /cpy_maxmed.m: -------------------------------------------------------------------------------- 1 | clc; 2 | clearvars; 3 | close all; 4 | cy = 100; 5 | cx = 100; 6 | r = 1; 7 | img = ones(500, 500)*100; 8 | img(cy-r:cy+r, cx-r:cx+r) = 200; 9 | img = uint8(img); 10 | figure; imshow(img); 11 | img = double(img); 12 | re = maxMean(img, 2*r+1); 13 | figure; imshow(re, []); 14 | re1 = maxMed(img, 2*r+1); 15 | figure; imshow(re1, []); 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /cpy_mgdwe.m: -------------------------------------------------------------------------------- 1 | % Infrared Small-Target Detection Using Multiscale Gray Difference Weighted Image Entropy 2 | clearvars; 3 | close all; 4 | clc; 5 | wflag = 1; 6 | for kk = 1 7 | fold = '.\data\';% 27 images 8 | try 9 | img = imread([fold, num2str(kk), '.jpg']); 10 | catch 11 | img = imread([fold, num2str(kk), '.bmp']); 12 | end 13 | img = img(:,:,1); 14 | re = mgdwe(img); 15 | bw = bwfunc(re); 16 | if wflag 17 | refold = '.\'; 18 | if exist(refold,'dir')==0 19 | mkdir(refold); 20 | end 21 | imwrite(uint8(img), [refold, num2str(kk), '1.png']); 22 | imwrite(uint8( mat2gray(re) * 255), [refold, num2str(kk), '2.png']); 23 | imwrite(bw, [refold, num2str(kk), '3.png']); 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /cpy_mpcm.m: -------------------------------------------------------------------------------- 1 | % 2016 Multiscale patch-based contrast measure for small infrared target detection 2 | clearvars; 3 | close all; 4 | clc; 5 | flag = 1; 6 | wflag = 1; 7 | for kk = 1 8 | fold = '.\data\';% 27 images 9 | try 10 | img = imread([fold, num2str(kk), '.jpg']); 11 | catch 12 | img = imread([fold, num2str(kk), '.bmp']); 13 | end 14 | img = double(img); 15 | re = MPCM_fun(img); 16 | bw = bwfunc(re); 17 | if flag 18 | figure; imshow(re, []); 19 | figure; surf(re); 20 | xlabel('x'); 21 | ylabel('y'); 22 | figure; imshow(bw); 23 | end 24 | if wflag 25 | refold = '.\'; 26 | imwrite(uint8(img), [refold, num2str(kk), '1.png']); 27 | imwrite(uint8( mat2gray(re) * 255), [refold, num2str(kk), '2.png']); 28 | imwrite(bw, [refold, num2str(kk), '3.png']); 29 | end 30 | end 31 | 32 | -------------------------------------------------------------------------------- /cpy_tophat.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/cpy_tophat.m -------------------------------------------------------------------------------- /data/1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/1.bmp -------------------------------------------------------------------------------- /data/10.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/10.bmp -------------------------------------------------------------------------------- /data/11.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/11.bmp -------------------------------------------------------------------------------- /data/12.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/12.bmp -------------------------------------------------------------------------------- /data/13.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/13.bmp -------------------------------------------------------------------------------- /data/14.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/14.bmp -------------------------------------------------------------------------------- /data/15.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/15.bmp -------------------------------------------------------------------------------- /data/16.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/16.bmp -------------------------------------------------------------------------------- /data/17.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/17.bmp -------------------------------------------------------------------------------- /data/18.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/18.bmp -------------------------------------------------------------------------------- /data/19.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/19.bmp -------------------------------------------------------------------------------- /data/2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/2.bmp -------------------------------------------------------------------------------- /data/20.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/20.bmp -------------------------------------------------------------------------------- /data/21.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/21.bmp -------------------------------------------------------------------------------- /data/22.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/22.bmp -------------------------------------------------------------------------------- /data/23.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/23.bmp -------------------------------------------------------------------------------- /data/24.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/24.bmp -------------------------------------------------------------------------------- /data/25.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/25.bmp -------------------------------------------------------------------------------- /data/3.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/3.bmp -------------------------------------------------------------------------------- /data/4.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/4.bmp -------------------------------------------------------------------------------- /data/5.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/5.bmp -------------------------------------------------------------------------------- /data/6.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/6.bmp -------------------------------------------------------------------------------- /data/7.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/7.bmp -------------------------------------------------------------------------------- /data/8.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/8.bmp -------------------------------------------------------------------------------- /data/9.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/data/9.bmp -------------------------------------------------------------------------------- /data/readme.txt: -------------------------------------------------------------------------------- 1 | Please cite the paper as follows if you want to use these infrared small tareget small images. 2 | Thanks a lot. 3 | 4 | W. Li, M. Zhao, X. Deng, L. Li, L. Li, and W. Zhang, Infrared Small Target Detection Using Local 5 | and Nonlocal Spatial Information, IEEE J. Sel. Topics Appl. Earth Observ. Remote Sens. 12 (9) 6 | (2019) 3677-3689 -------------------------------------------------------------------------------- /dgradfunc.m: -------------------------------------------------------------------------------- 1 | % A Double-Neighborhood Gradient Method for Infrared Small Target Detection 2 | % 1 2 3 4 5 3 | % 6 7 8 9 10 4 | % 11 12 13 14 15 5 | % 16 17 18 19 20 6 | % 21 22 23 24 25 7 | function re = dgradfunc(img) 8 | img = double(img); 9 | [row, col] = size(img); 10 | len = 3; 11 | nr = 5; 12 | nc = 5; 13 | leny = len*nr; 14 | lenx= len*nc; 15 | op = zeros(leny, lenx, nr*nc); 16 | for ii = 1:nr*nc 17 | temp = zeros(len*nr, len*nc); 18 | [r, c] = ind2sub([nr, nc], ii); 19 | temp((r-1)*len + 1:r*len, (c-1)*len+1:c*len) = 1; 20 | temp = temp/sum(temp(:)); 21 | temp = temp'; 22 | op(:, :, ii) = temp; 23 | end 24 | %% 25 | gimg = zeros(row, col, nr*nc); 26 | for ii = 1:nr*nc 27 | gimg(:, :, ii) = imfilter(img, op(:,:, ii), 'replicate'); 28 | end 29 | m1 = gimg; 30 | m1(:,:, [7:9, 12:14, 17:19]) = []; 31 | 32 | t1 = repmat(gimg(:, :, 13), 1,1,16) - m1; 33 | t1(t1<=0) = 0; 34 | d1 = min(t1, [], 3); 35 | 36 | m2 = gimg; 37 | m2(:,:, [1:6, 10:11, 13, 15:16, 20:25]) = []; 38 | t2 = repmat(gimg(:, :, 13), 1,1,8) - m2; 39 | t2(t2<=0) = 0; 40 | d2 = min(t2, [], 3); 41 | 42 | re = d1.*d2; 43 | end 44 | -------------------------------------------------------------------------------- /dlcmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/dlcmfunc.m -------------------------------------------------------------------------------- /dsbmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/dsbmfunc.m -------------------------------------------------------------------------------- /elcmfunc.m: -------------------------------------------------------------------------------- 1 | % 2019 Gaussian Scale-Space Enhanced Local Contrast Measure for Small Infrared Target Detection 2 | function ISM = elcmfunc(img) 3 | img = double(img); 4 | %% gss 5 | d3 =3; 6 | s3 = d3/2/sqrt(2); 7 | o3 = fspecial('gaussian', floor(2*s3 +1), s3); 8 | d5 = 5; 9 | s5 = d5/2/sqrt(2); 10 | o5 = fspecial('gaussian', floor(2*s5 +1), s5); 11 | d7 = 7; 12 | s7 = d7/2/sqrt(2); 13 | o7 = fspecial('gaussian', floor(2*s7 +1), s7); 14 | g3 = imfilter(img, o3, 'replicate'); 15 | g5 = imfilter(img, o5, 'replicate'); 16 | g7 = imfilter(img, o7, 'replicate'); 17 | %% elcm 18 | ELCM3 = subfunc(g3, d3); 19 | ELCM5 = subfunc(g5, d5); 20 | ELCM7 = subfunc(g7, d7); 21 | tt = cat(3, ELCM3, ELCM5, ELCM7); 22 | ISM = max(tt, [], 3); 23 | end 24 | function ELCM = subfunc(img, s) 25 | op = zeros(s*3); 26 | len = floor(s/2); 27 | op1 = op; op1(len+1, len+1) = 1; 28 | op2 = op; op2(len+1, s + len+1) = 1; 29 | op3 = op; op3(len+1, 2*s + len+1) = 1; 30 | op4 = op; op4(s + len+1, len+1) = 1; 31 | op5 = op; op5(s + len+1, 2*s + len+1) = 1; 32 | op6 = op; op6(2*s + len+1, len+1) = 1; 33 | op7 = op; op7(2*s + len+1, s + len+1) = 1; 34 | op8 = op; op8(2*s + len+1, 2*s + len+1) = 1; 35 | G0 = img; 36 | G1 = imfilter(img, op1, 'replicate'); 37 | G2 = imfilter(img, op2, 'replicate'); 38 | G3 = imfilter(img, op3, 'replicate'); 39 | G4 = imfilter(img, op4, 'replicate'); 40 | G5 = imfilter(img, op5, 'replicate'); 41 | G6 = imfilter(img, op6, 'replicate'); 42 | G7 = imfilter(img, op7, 'replicate'); 43 | G8 = imfilter(img, op8, 'replicate'); 44 | ind = G0 >G1 & G0 >G2 &G0 >G3 &G0 >G4 &... 45 | G0 >G5 & G0 >G6 &G0 >G7 &G0 >G8; 46 | d1 = (G0 - G1).^2; r1 = G0./G1; 47 | d2 = (G0 - G2).^2; r2 = G0./G2; 48 | d3 = (G0 - G3).^2; r3 = G0./G3; 49 | d4 = (G0 - G4).^2; r4 = G0./G4; 50 | d5 = (G0 - G5).^2; r5 = G0./G5; 51 | d6 = (G0 - G6).^2; r6 = G0./G6; 52 | d7 = (G0 - G7).^2; r7 = G0./G7; 53 | d8 = (G0 - G8).^2; r8 = G0./G8; 54 | dr1 = d1.*r1; 55 | dr2 = d2.*r2; 56 | dr3 = d3.*r3; 57 | dr4 = d4.*r4; 58 | dr5 = d5.*r5; 59 | dr6 = d6.*r6; 60 | dr7 = d7.*r7; 61 | dr8 = d8.*r8; 62 | drt = cat(3, dr1, dr2, dr3, dr4, dr5, dr6, dr7, dr8); 63 | ELCM = min(drt, [], 3); 64 | ELCM(~ind) = 0; 65 | end 66 | 67 | 68 | % d1 = (G0 - G1).^2; r1 = G0./G1; 69 | % d2 = (G0 - G2).^2; r2 = G0./G2; 70 | % d3 = (G0 - G3).^2; r3 = G0./G3; 71 | % d4 = (G0 - G4).^2; r4 = G0./G4; 72 | % d5 = (G0 - G5).^2; r5 = G0./G5; 73 | % d6 = (G0 - G6).^2; r6 = G0./G6; 74 | % d7 = (G0 - G7).^2; r7 = G0./G7; 75 | % d8 = (G0 - G8).^2; r8 = G0./G8; 76 | % dd1 = dt(y,x, :); 77 | % dd1 = squeeze(dd1) 78 | % rr1 = rt(y,x, :); 79 | % rr1 = squeeze(rr1) 80 | % t2 = drt(y,x,:) 81 | % t2 = squeeze(t2) 82 | % figure; hold on; 83 | % plot(dd1, 'r-') 84 | % plot( rr1, 'g-'); 85 | % plot(t2, 'b-'); 86 | % min(dd1)*min(rr1) 87 | % min(t2) 88 | % ELCM(y,x) 89 | % ELCM1(y, x) -------------------------------------------------------------------------------- /final_AAGD.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/final_AAGD.m -------------------------------------------------------------------------------- /hbmlcmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/hbmlcmfunc.m -------------------------------------------------------------------------------- /lcmfunc.m: -------------------------------------------------------------------------------- 1 | % 2013 a local contrast method for small infrared target detection 2 | function re = lcmfunc(img) 3 | img = double(img); 4 | flag = 0; 5 | %% the scale is 3 6 | len = 3; 7 | op31 = zeros(len*3); op31(1:len, 1:len) = 1/(len*len); 8 | op32 = zeros(len*3); op32(1:len, len+1:2*len) = 1/(len*len); 9 | op33 = zeros(len*3); op33(1:len, 2*len+1:3*len) = 1/(len*len); 10 | op34 = zeros(len*3); op34(len+1:2*len, 1:len) = 1/(len*len); 11 | 12 | op35 = ones(len); 13 | m35 = imdilate(double(img), op35); 14 | 15 | op36 = zeros(len*3); op36(len+1:2*len, 2*len+1:3*len) = 1/(len*len); 16 | op37 = zeros(len*3); op37(2*len+1:3*len, 1:len) = 1/(len*len); 17 | op38 = zeros(len*3); op38(2*len+1:3*len, len+1:2*len) = 1/(len*len); 18 | op39 = zeros(len*3); op39(2*len+1:3*len, 2*len+1:3*len) = 1/(len*len); 19 | m31 = imfilter(img, op31, 'symmetric'); 20 | m32 = imfilter(img, op32, 'symmetric'); 21 | m33 = imfilter(img, op33, 'symmetric'); 22 | m34 = imfilter(img, op34, 'symmetric'); 23 | m36 = imfilter(img, op36, 'symmetric'); 24 | m37 = imfilter(img, op37, 'symmetric'); 25 | m38 = imfilter(img, op38, 'symmetric'); 26 | m39 = imfilter(img, op39, 'symmetric'); 27 | m3b = cat(3, m31, m32, m33, m34, m36, m37, m38, m39); 28 | m3b = max(m3b, [], 3); 29 | out3 = m35.^2./m3b; 30 | if flag 31 | figure; imshow(out3, []); hold on; plot(cx, cy, 'rs'); title('scale 3x3'); 32 | figure; surf(out3); title('scale 3x3'); 33 | end 34 | %% the scale is 5 35 | len = 5; 36 | op51 = zeros(len*3); op51(1:len, 1:len) = 1/(len*len); 37 | op52 = zeros(len*3); op52(1:len, len+1:2*len) = 1/(len*len); 38 | op53 = zeros(len*3); op53(1:len, 2*len+1:3*len) = 1/(len*len); 39 | op54 = zeros(len*3); op54(len+1:2*len, 1:len) = 1/(len*len); 40 | 41 | op55 = ones(len); 42 | m55 = imdilate(img, op55); 43 | 44 | op56 = zeros(len*3); op56(len+1:2*len, 2*len+1:3*len) = 1/(len*len); 45 | op57 = zeros(len*3); op57(2*len+1:3*len, 1:len) = 1/(len*len); 46 | op58 = zeros(len*3); op58(2*len+1:3*len, len+1:2*len) = 1/(len*len); 47 | op59 = zeros(len*3); op59(2*len+1:3*len, 2*len+1:3*len) = 1/(len*len); 48 | m51 = imfilter(img, op51, 'symmetric'); 49 | m52 = imfilter(img, op52, 'symmetric'); 50 | m53 = imfilter(img, op53, 'symmetric'); 51 | m54 = imfilter(img, op54, 'symmetric'); 52 | m56 = imfilter(img, op56, 'symmetric'); 53 | m57 = imfilter(img, op57, 'symmetric'); 54 | m58 = imfilter(img, op58, 'symmetric'); 55 | m59 = imfilter(img, op59, 'symmetric'); 56 | m5b = cat(3, m51, m52, m53, m54, m56, m57, m58, m59); 57 | m5b = max(m5b, [], 3); 58 | out5 = m55.^2./m5b; 59 | if flag 60 | figure; imshow(out5, []); hold on; plot(cx, cy, 'rs'); title('scale 5x5'); 61 | figure; surf(out5); title('scale 5x5'); 62 | end 63 | %% the scale is 7 64 | len = 7; 65 | op71 = zeros(len*3); op71(1:len, 1:len) = 1/(len*len); 66 | op72 = zeros(len*3); op72(1:len, len+1:2*len) = 1/(len*len); 67 | op73 = zeros(len*3); op73(1:len, 2*len+1:3*len) = 1/(len*len); 68 | op74 = zeros(len*3); op74(len+1:2*len, 1:len) = 1/(len*len); 69 | 70 | op75 = ones(len); 71 | m75 = imdilate(img, op75); 72 | 73 | op76 = zeros(len*3); op76(len+1:2*len, 2*len+1:3*len) = 1/(len*len); 74 | op77 = zeros(len*3); op77(2*len+1:3*len, 1:len) = 1/(len*len); 75 | op78 = zeros(len*3); op78(2*len+1:3*len, len+1:2*len) = 1/(len*len); 76 | op79 = zeros(len*3); op79(2*len+1:3*len, 2*len+1:3*len) = 1/(len*len); 77 | m71 = imfilter(img, op71, 'symmetric'); 78 | m72 = imfilter(img, op72, 'symmetric'); 79 | m73 = imfilter(img, op73, 'symmetric'); 80 | m74 = imfilter(img, op74, 'symmetric'); 81 | m76 = imfilter(img, op76, 'symmetric'); 82 | m77 = imfilter(img, op77, 'symmetric'); 83 | m78 = imfilter(img, op78, 'symmetric'); 84 | m79 = imfilter(img, op79, 'symmetric'); 85 | m7b = cat(3, m71, m72, m73, m74, m76, m77, m78, m79); 86 | m7b = max(m7b, [], 3); 87 | out7 = m75.^2./m7b; 88 | if flag 89 | figure; imshow(out7, []); hold on; plot(cx, cy, 'rs'); title('scale 7x7'); 90 | figure; surf(out7); title('scale 7x7'); 91 | end 92 | %% the scale is 9 93 | len = 9; 94 | op91 = zeros(len*3); op91(1:len, 1:len) = 1/(len*len); 95 | op92 = zeros(len*3); op92(1:len, len+1:2*len) = 1/(len*len); 96 | op93 = zeros(len*3); op93(1:len, 2*len+1:3*len) = 1/(len*len); 97 | op94 = zeros(len*3); op94(len+1:2*len, 1:len) = 1/(len*len); 98 | 99 | op95 = ones(len); 100 | m95 = imdilate(img, op95); 101 | 102 | op96 = zeros(len*3); op96(len+1:2*len, 2*len+1:3*len) = 1/(len*len); 103 | op97 = zeros(len*3); op97(2*len+1:3*len, 1:len) = 1/(len*len); 104 | op98 = zeros(len*3); op98(2*len+1:3*len, len+1:2*len) = 1/(len*len); 105 | op99 = zeros(len*3); op99(2*len+1:3*len, 2*len+1:3*len) = 1/(len*len); 106 | m91 = imfilter(img, op91, 'symmetric'); 107 | m92 = imfilter(img, op92, 'symmetric'); 108 | m93 = imfilter(img, op93, 'symmetric'); 109 | m94 = imfilter(img, op94, 'symmetric'); 110 | m96 = imfilter(img, op96, 'symmetric'); 111 | m97 = imfilter(img, op97, 'symmetric'); 112 | m98 = imfilter(img, op98, 'symmetric'); 113 | m99 = imfilter(img, op99, 'symmetric'); 114 | m9b = cat(3, m91, m92, m93, m94, m96, m97, m98, m99); 115 | m9b = max(m9b, [], 3); 116 | out9 = m95.^2./m9b; 117 | if flag 118 | figure; imshow(out9, []); hold on; plot(cx, cy, 'rs'); title('scale 9x9'); 119 | figure; surf(out9); title('scale 9x9'); 120 | end 121 | %% 122 | out = cat(3, out3, out5, out7, out9); 123 | re = max(out, [], 3); 124 | if flag 125 | figure; imshow(re, []); 126 | figure; surf(re); 127 | end 128 | end -------------------------------------------------------------------------------- /leffunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/leffunc.m -------------------------------------------------------------------------------- /localmean.m: -------------------------------------------------------------------------------- 1 | function mean=localmean(f,nhood) 2 | % performing local averaging on 2D images 3 | % inputs: f => input images 4 | % nhood => the neighbourhood matrix 5 | % e.g. ones(5) 6 | % output: mean => local average matrix 7 | if nargin==1 8 | nhood=ones(3)/9; 9 | else 10 | nhood=nhood/(sum(nhood(:))); 11 | end 12 | mean=imfilter(f,nhood,'symmetric'); 13 | end 14 | -------------------------------------------------------------------------------- /lrfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/lrfunc.m -------------------------------------------------------------------------------- /main.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/main.m -------------------------------------------------------------------------------- /maxMean.m: -------------------------------------------------------------------------------- 1 | function re =maxMean(img,sz) 2 | img = double(img); 3 | cx = (sz + 1)/2; 4 | cy = (sz + 1)/2; 5 | op1 = zeros(sz); 6 | op2 = zeros(sz); 7 | op1(:, cx) = 1/sz; 8 | op2(cy, :) = 1/sz; 9 | op3 = diag( ones(1, sz)/sz); 10 | op4 = fliplr( op3); 11 | re1 = imfilter(img, op1, 'symmetric'); 12 | re2 = imfilter(img, op2, 'symmetric'); 13 | re3 = imfilter(img, op3, 'symmetric'); 14 | re4 = imfilter(img, op4, 'symmetric'); 15 | back = max( cat(3, re1, re2, re3, re4), [], 3); 16 | re = img - back; 17 | end -------------------------------------------------------------------------------- /maxMed.m: -------------------------------------------------------------------------------- 1 | function re =maxMed(img, sz) 2 | img = double(img); 3 | cx = (sz + 1)/2; 4 | cy = (sz + 1)/2; 5 | op1 = zeros(sz); 6 | op2 = zeros(sz); 7 | op1(:, cx) = 1; 8 | op2(cy, :) = 1; 9 | op3 = diag( ones(1, sz)); 10 | op4 = fliplr(op3); 11 | re1 = ordfilt2(img, (sz +1)/2, op1, 'symmetric'); 12 | re2 = ordfilt2(img, (sz +1)/2, op2, 'symmetric'); 13 | re3 = ordfilt2(img, (sz +1)/2, op3, 'symmetric'); 14 | re4 = ordfilt2(img, (sz +1)/2, op4, 'symmetric'); 15 | back = max( cat(3, re1, re2, re3, re4), [], 3); 16 | re = img - back; 17 | end -------------------------------------------------------------------------------- /mgdwe.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/mgdwe.m -------------------------------------------------------------------------------- /mlhmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/mlhmfunc.m -------------------------------------------------------------------------------- /nhbf_ilcmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/nhbf_ilcmfunc.m -------------------------------------------------------------------------------- /nlcmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/nlcmfunc.m -------------------------------------------------------------------------------- /paper/2014 A Local Contrast Method for Small Infrared Target Detection.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2014 A Local Contrast Method for Small Infrared Target Detection.pdf -------------------------------------------------------------------------------- /paper/2014 A Robust Infrared Small Target Detection Algorithm Based on Human Visual System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2014 A Robust Infrared Small Target Detection Algorithm Based on Human Visual System.pdf -------------------------------------------------------------------------------- /paper/2016 Infrared Small-Target Detection Using Multiscale Gray Difference Weighted Image Entropy -code.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2016 Infrared Small-Target Detection Using Multiscale Gray Difference Weighted Image Entropy -code.pdf -------------------------------------------------------------------------------- /paper/2016 Infrared small target detection via line-based reconstruction and entropy-induced suppression -code -txt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2016 Infrared small target detection via line-based reconstruction and entropy-induced suppression -code -txt.pdf -------------------------------------------------------------------------------- /paper/2016 Multiscale patch-based contrast measure for small infrared target detection.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2016 Multiscale patch-based contrast measure for small infrared target detection.pdf -------------------------------------------------------------------------------- /paper/2016 Small infrared target detection based on weighted local difference measure -code.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2016 Small infrared target detection based on weighted local difference measure -code.pdf -------------------------------------------------------------------------------- /paper/2018 Fast and robust small infrared target detection using absolute directional mean difference algorithm -code.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2018 Fast and robust small infrared target detection using absolute directional mean difference algorithm -code.pdf -------------------------------------------------------------------------------- /paper/2018 High-Boost-Based Multiscale Local Contrast Measure for Infrared Small Target Detection -code -txt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2018 High-Boost-Based Multiscale Local Contrast Measure for Infrared Small Target Detection -code -txt.pdf -------------------------------------------------------------------------------- /paper/2018 Infrared Small Target Detection Utilizing the Multiscale Relative Local Contrast Measure -code -txt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2018 Infrared Small Target Detection Utilizing the Multiscale Relative Local Contrast Measure -code -txt.pdf -------------------------------------------------------------------------------- /paper/2018 Infrared small target detection based on local intensity and gradient properties.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2018 Infrared small target detection based on local intensity and gradient properties.pdf -------------------------------------------------------------------------------- /paper/2018 Tiny and Dim Infrared Target Detection Based on Weighted Local Contrast - txt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2018 Tiny and Dim Infrared Target Detection Based on Weighted Local Contrast - txt.pdf -------------------------------------------------------------------------------- /paper/2019 A Local Contrast Method for Infrared Small-Target Detection Utilizing a Tri-Layer Window -code.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2019 A Local Contrast Method for Infrared Small-Target Detection Utilizing a Tri-Layer Window -code.pdf -------------------------------------------------------------------------------- /paper/2019 Infrared Small Target Detection Based on Multiscale Local Contrast Measure Using Local Energy Factor -code.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2019 Infrared Small Target Detection Based on Multiscale Local Contrast Measure Using Local Energy Factor -code.pdf -------------------------------------------------------------------------------- /paper/2019 Small infrared target detection using absolute average difference weighted by cumulative directional derivatives - code -txt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2019 Small infrared target detection using absolute average difference weighted by cumulative directional derivatives - code -txt.pdf -------------------------------------------------------------------------------- /paper/2020 A Double-Neighborhood Gradient Method for Infrared Small Target Detection.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2020 A Double-Neighborhood Gradient Method for Infrared Small Target Detection.pdf -------------------------------------------------------------------------------- /paper/2020 基于双层局部对比度的红外弱小目标检测方法.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/paper/2020 基于双层局部对比度的红外弱小目标检测方法.pdf -------------------------------------------------------------------------------- /tllcm.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/tllcm.m -------------------------------------------------------------------------------- /tophatfunc.m: -------------------------------------------------------------------------------- 1 | % top hat 2 | function re = tophatfunc(img, op) 3 | re = imtophat(img, op); 4 | end -------------------------------------------------------------------------------- /wldmfunc.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daxjuanxiong/infrared-small-target-detection/bf9b82519b235b776749ca8d89018de71ec65f7b/wldmfunc.m --------------------------------------------------------------------------------