def recover_blue(image_remove_blue): RG_matrix, RG_record_matrix, RB_matrix, RB_record_matrix, GB_matrix, GB_record_matrix = csv_operation.import_csv( ) image_recover_blue = copy.deepcopy(image_remove_blue) image_size = image_remove_blue.shape # num_channel = image_size[2] num_row = image_size[0] # how many rows num_column = image_size[1] # how many columns # initialize recoverd_red to store recovered_blue = np.zeros((num_row, num_column), dtype=np.int32) # for now, we recover the image except edge for i in np.arange(1, num_row - 1): for j in np.arange(1, num_column - 1): red_value = image_recover_blue[i, j, 0] green_value = image_recover_blue[i, j, 1] red_contrast = pixel_operation.rms_contrast( image_recover_blue, i, j, 0) green_contrast = pixel_operation.rms_contrast( image_recover_blue, i, j, 1) red_green_contrast_mean = (red_contrast + green_contrast) / 2 RG_matrix_index = pixel_operation.contrast_index( red_green_contrast_mean) recovered_blue[i, j] = RG_matrix[green_value, red_value, RG_matrix_index] image_recover_blue[:, :, 2] = recovered_blue plt.imshow(image_recover_blue) plt.xticks([]) plt.yticks([]) return image_recover_blue
def recover_red(image_remove_red): RG_matrix, RG_record_matrix, RB_matrix, RB_record_matrix, GB_matrix, GB_record_matrix = csv_operation.import_csv( ) image_recover_red = copy.deepcopy(image_remove_red) image_size = image_remove_red.shape # num_channel = image_size[2] num_row = image_size[0] # how many rows num_column = image_size[1] # how many columns # initialize recoverd_red to store recovered_red = np.zeros((num_row, num_column), dtype=np.int32) # for now, we recover the image except edge for i in np.arange(1, num_row - 1): for j in np.arange(1, num_column - 1): green_value = image_remove_red[i, j, 1] blue_value = image_remove_red[i, j, 2] green_contrast = pixel_operation.rms_contrast( image_remove_red, i, j, 1) blue_contrast = pixel_operation.rms_contrast( image_remove_red, i, j, 2) green_blue_contrast_mean = (green_contrast + blue_contrast) / 2 GB_matrix_index = pixel_operation.contrast_index( green_blue_contrast_mean) recovered_red[i, j] = GB_matrix[blue_value, green_value, GB_matrix_index] image_recover_red[:, :, 0] = recovered_red plt.imshow(image_recover_red) plt.xticks([]) plt.yticks([]) return image_recover_red