You have no items in your shopping cart.

Subtotal: 0.00

Description

Target detection refers to the use of high spectral resolution remotely sensed images to map the locations of a target or feature (often a plant species of interest) with a particular spectral or spatial signature. Target detection or feature extraction encompasses a broad range of techniques, including measurements derived from individual bands and more complex methods designed to recognize discrete features by shape, hyperspectral signature, or texture. Targets of interest are often smaller than the pixel size of the image (subpixel target detection) or are mixed with other nontarget cover types within a pixel, requiring techniques such as spectral mixture analysis to detect the target species. Hyperspectral images are useful in target detection because they contain a large contiguous set of spectral bands, often numbering in the hundreds to thousands, and provide large quantities of high spectral resolution data. Using a hyperspectral image, the spectral properties of the target, such as contrast, variability, similarity and discriminability, can be used to detect targets at the subpixel level. The user specifies spectral endmembers, which are the reflectance spectra of the “pure” targets that occur across the landscape, and image processing software is used to characterize the extent of the target across the landscape. The selection of spectral endmembers is similar to the idea of identifying training areas in supervised classification, but the spectral endmember can then be used at a subpixel level to detect the species of interest. Spectral endmembers are often generated in the field using a field spectroradiometer. Then the image is processed using classification algorithms to detect the locations of the target species.

Demonstration Video


 

Matlab code for Target Detection

 

 

Matlab-Code-for-Target-Detection

inputimage = handles.inputimage ;
r_image=inputimage
    target_image=inputimage;
 
    fid = fopen('database.txt');
 
    fresultValues = [];      % Results matrix...
    fresultNames = {};
    i = 1;                  % Indices...
    j = 1;
 
while 1
    imagename = fgetl(fid);
if ~ischar(imagename), break, end% Meaning: End of File...
 
    [X] = imread(imagename);
    r1_image=X;
 
%     imageEnergies_r = obtainEnergies1(r1_image);
w = X;
[r1 c1 p1]=size(w);
w= im2double(w);
sizw = size(w);
% figure
% imshow(w)
title('Input Image')
t = target_image;
[r2 c2 p2]=size(t);
t = im2double(t);
sizt = size(t);
% figure
% imshow(t)
title('Target Image')
% pause(3.5);
% close;
ww = rgb2gray(w);
tt = rgb2gray(t);
tedge = edge(tt);
wedge = edge(ww);
out = filter2(tedge,wedge);
o = max(max(out));
output = (1/o)*out;
 
pixel = find(output == 1);
pcolumn = fix(pixel / sizw(1));
prow = mod(pixel,sizw(1));
rdis = fix(sizt(1)/2);
cdis = fix(sizt(2)/2);
cmin = pcolumn - cdis;
cmax = pcolumn + cdis;
rmin = prow - rdis;
rmax = prow + rdis;
clear c;
clear r;
c = [cmin cmin cmax cmax];
c22=min(c);
r = [rmin rmax rmax rmin];
r22=min(r);
 [r3 c3]=size(c);
  [r4 c4]=size(c);
  ret1=0;
if cmax < 256
if rmax < 256
if (r3==1) & (r4 ==1)
if (c22 > 0)& (r22 > 0)
bb=ww((rmin+1):rmax,(cmin+1):cmax);
bb=imresize(bb,[r2 c2]);
 m = roipoly(ww,c,r);
%  figure;
%  imshow(m);
 
ret=corr2(bb,tt);
  aA1=num2str(ret)
  ;
    set(handles.CR,'String',aA1);
if ret >0.8
    ret1=1;
disp(ret);
m = im2double(m);
m = 0.5 * (m + 1);
mask(:,:,1) = m;
mask(:,:,2) = m;
mask(:,:,3) = m;
final = mask .* w;
% figure
title('Result Image')
 
axes(handles.axes3);
imshow(w)
title('Detected Image')
axes(handles.axes2);
imshow(final)
title('Result Image')
 
end
if ret1==1;
       aA='TARGET DETECTED';
    set(handles.det,'String',aA);
break;
end
end
end
end
end
disp(i);
if ret1==1;
break;
end
    i = i + 1;
    j = j + 1;
end
fclose(fid);
if ret1==0;
      aA='TARGET NOT DETECTED';
    set(handles.det,'String',aA);
end