Ejemplo n.º 1
0
 def do_option(self, transmission_array, transmission_array_name,
               result_queue):
     if OPTION != Options.GET_HISTOGRAM_WITH_CLOSE_RGB:
         return
     haze_arr = option_get_haze_array_with_transmission_name(
         transmission_array_name)
     _, alpha, _ = dt.trans_get_alpha_beta(transmission_array_name)
     pq = queue.PriorityQueue()
     shape = np.shape(haze_arr)
     H = shape[0]
     W = shape[1]
     expected_number = 0
     for h in range(H):
         for w in range(W):
             if abs(haze_arr[h][w][0] - haze_arr[h][w][1]) <= constant.OPTIONS_THRESHOLD and abs(
                     haze_arr[h][w][1] - haze_arr[h][w][2]) <= constant.OPTIONS_THRESHOLD and abs(
                 haze_arr[h][w][0] - haze_arr[h][w][2]) \
                     <= constant.OPTIONS_THRESHOLD:
                 if haze_arr[h][w][0] >= constant.OPTIONS_LOWER_BOUNDARY:
                     # pq.put((haze_arr[h][w][0] + haze_arr[h][w][1] + haze_arr[h][w][2]) / 3)
                     pq.put(haze_arr[h][w][0])
                     if transmission_array[h][
                             w] < constant.OPTIONS_TRANSMISSION_THRESHOLD:
                         expected_number += 1
     result_queue.put((alpha, pq, expected_number, transmission_array_name))
Ejemplo n.º 2
0
 def run(self):
     while True:
         # Read clear image, result image and their corresponding transmission image.
         # Get the three corresponding matrices for a single image.
         result_image_name = self.result_queue.get()
         if result_image_name is None:
             RESULT_IMAGE_QUEUE.put(None)
             self.task_queue.put(None)
             break
         result_single_dir = os.path.join(constant.STATS_RESULT_DIR,
                                          result_image_name)
         clear_index = result_image_name[0:constant.STATS_CLEAR_INDEX_BIT]
         trans_index = result_image_name[0:constant.STATS_TRANS_INDEX_BIT]
         if clear_index not in constant.STATS_CLEAR_DICTIONARY:
             raise RuntimeError(result_image_name +
                                ' cannot find corresponding clear image.')
         clear_single_dir = constant.STATS_CLEAR_DICTIONARY[clear_index]
         if trans_index not in constant.STATS_TRANSMISSION_DICTIONARY:
             raise RuntimeError(
                 result_image_name +
                 ' cannot find corresponding transmission image.')
         transmission_single_dir = constant.STATS_TRANSMISSION_DICTIONARY[
             trans_index]
         clear, result, transmission = sta_read_image(
             clear_single_dir, result_single_dir, transmission_single_dir)
         [_, filename] = os.path.split(transmission_single_dir)
         _, alpha, beta = dehazenet_transmission.trans_get_alpha_beta(
             filename)
         current_task = ImageTask(clear, result, transmission, alpha, beta)
         self.task_queue.put(current_task)
     print('Statistic Producer finish')
Ejemplo n.º 3
0
 def do_option(self, transmission_array, transmission_name, result_queue):
     if OPTION != Options.GET_ESTIMATE_ALPHA:
         return
     _, alpha, _ = dt.trans_get_alpha_beta(transmission_name)
     haze_arr = option_get_haze_array_with_transmission_name(
         transmission_name)
     intermediate_map = OptionMapFactory(MAP_OPTION).get_map(haze_arr)
     # attenuation_depth_map = OptionGetEstimateAlpha.__option_get_depth_color_attenuation(haze_arr)
     OptionGetEstimateAlpha.__estimate_alpha_with_map(
         intermediate_map, haze_arr, alpha, result_queue)
Ejemplo n.º 4
0
 def do_option(self, transmission_array, transmission_name, result_queue):
     if OPTION != Options.DEHAZE_WITH_TRANSMISSION_MAP:
         return
     haze_arr = option_get_haze_array_with_transmission_name(
         transmission_name)
     # Get alpha from name
     _, alpha, _ = dt.trans_get_alpha_beta(transmission_name)
     do.opt_write_result_to_file(
         do.opt_dehaze_with_alpha_transmission(alpha, transmission_array,
                                               haze_arr))
Ejemplo n.º 5
0
 def do_option(self, transmission_array, transmission_array_name,
               result_queue):
     if OPTION != Options.GET_TRANSMISSION_HISTOGRAM:
         return
     _, alpha, _ = dt.trans_get_alpha_beta(transmission_array_name)
     shape = np.shape(transmission_array)
     H = shape[0]
     W = shape[1]
     expected_number = 0
     pq = queue.PriorityQueue()
     for h in range(H):
         for w in range(W):
             pq.put(transmission_array[h][w])
             if transmission_array[h][
                     w] < constant.OPTIONS_TRANSMISSION_THRESHOLD:
                 expected_number += 1
     result_queue.put((alpha, pq, expected_number, transmission_array_name))
def opt_get_alpha(image_index):
    hazy_image_fullname = CLEAR_IMAGE_DICTIONARY[image_index]
    _, image_alpha, _ = dt.trans_get_alpha_beta(hazy_image_fullname)
    return hazy_image_fullname, image_alpha