Outputs: det_out - dictionary of RGB image, ground truth image, and detector outputs 6/2/2018 - Alina Zare 10/12/2018 - Python Implementation by Yutai Zhou """ # Load data an_hsi_img_for_tgt_det_demo = loadmat('an_hsi_img_for_tgt_det_demo.mat') hsi_sub = an_hsi_img_for_tgt_det_demo['hsi_sub'] tgt_spectra = an_hsi_img_for_tgt_det_demo['tgt_spectra'] tgt_spectra = tgt_spectra.squeeze() wavelengths = an_hsi_img_for_tgt_det_demo['wavelengths'] gt_img_sub = an_hsi_img_for_tgt_det_demo['gtImg_sub'] det_out = {} det_out['RGB'] = get_RGB(hsi_sub, wavelengths) det_out['Ground Truth'] = gt_img_sub # init detector args guard_win = 1 bg_win = 3 beta = 0.001 n_dim_ss = 10 ems = hsi_sub[:3, 1, :].T # need to provide background endmembers (can get them using SPICE unmixing) # call detectors abd_out = abd_detector(hsi_sub, tgt_spectra, ems) det_out['ABD'] = abd_out ace_out, _, _ = ace_detector(hsi_sub, tgt_spectra) det_out['ACE Squared'] = ace_out
# # Outputs: # im_reduced: cell array containing reduced data results # # Author: Alina Zare # Email Address: [email protected] # Created: June 3, 2018 # load data an_hsi_image_sub_for_demo = loadmat('an_hsi_image_sub_for_demo.mat') img = an_hsi_image_sub_for_demo['hsi_img_sub'] wavelengths = an_hsi_image_sub_for_demo['wavelengths'] # run hdr hdr_out = dimReduction(img) # run mnf mnf_out = mnf(img, 0.999)[0] mnf_out = (mnf_out - np.min(mnf_out)) / np.max(mnf_out) # visualize plt.subplot(1, 3, 1) plt.title("RGB Image") plt.imshow(get_RGB(img, wavelengths)) plt.subplot(1, 3, 2) plt.title("HDR Image") plt.imshow(hdr_out[:, :, :3]) plt.subplot(1, 3, 3) plt.title("MNF Image") plt.imshow(mnf_out[:, :, :3]) plt.show()
if not present or empty, no mask restrictions are used wavelength - 1 x n_band vector listing wavelength values for hsi_img in nm Outputs: class_out - dictionary of rgb image and classifier outputs 6/3/2018 - Alina Zare 10/2018 - Python Implementation by Yutai Zhou """ an_hsi_img_for_class_demo = loadmat('an_hsi_img_for_class_demo.mat') hsi_img = an_hsi_img_for_class_demo['hsi_sub'] train_data = an_hsi_img_for_class_demo['train_data'] wavelength = an_hsi_img_for_class_demo['wavlength'] class_out = {} class_out['RGB'] = get_RGB(hsi_img, wavelength) class_out['KNN'] = knn_classifier(hsi_img, train_data, K = 3) class_out['FKNN'] = fuzzy_knn_classifier(hsi_img, train_data, K = 3, m = 2.1) class_out['PKNN'] = poss_knn_classifier(hsi_img, train_data, K = 3, eta = 0.01, m = 2.1) # KNN Results fig, ax = plt.subplots(1,2,figsize=(15, 8)) plt.subplots_adjust(hspace=.5) plt.suptitle('KNN Results') ax[0].imshow(class_out['RGB']); ax[0].set_title('RGB') cax = ax[1].imshow(class_out['KNN']); ax[1].set_title('KNN') cbar = fig.colorbar(cax, ticks=[i for i in range(len(train_data[0]))], orientation='vertical') cbar.ax.set_yticklabels([i[0] for i in train_data[0][:]['name']]) # Fuzzy KNN Results