logger.info("Calculating histograms...")
histograms = [cv2.calcHist([img], [0], None, [256], [0, 256]) for img in image_list]
img_list = list(list(items) for items in zip(filename_list, histograms, scores))
logger.info("Comparing histograms...")
img_list_len = len(img_list)
for i in tqdm(range(0, img_list_len), desc="Comparing", file=sys.stdout):
score_total = 0
for j in range(0, img_list_len):
if i == j:
continue
score_total += cv2.compareHist(img_list[i][1], img_list[j][1], distance)
img_list[i][2] = score_total
logger.info("Sorting...")
img_list = sorted(img_list, key=operator.itemgetter(2), reverse=True)return img_list
def sort_color(self):
Score by channel average intensity
logger.info("Sorting by channel average intensity...")
After Change
// TODO We have metadata here, so we can mask the face for hist sorting
img_list = [[filename, cv2.calcHist([image], [0], None, [256], [0, 256]), 0.0]
for filename, image, _ in tqdm(self._loader.load(),
desc="Calculating histograms",
total=self._loader.count,
leave=False)]
img_list_len = len(img_list)
for i in tqdm(range(0, img_list_len), desc="Comparing histograms", file=sys.stdout):
score_total = 0
for j in range(0, img_list_len):
if i == j:
continue
score_total += cv2.compareHist(img_list[i][1],
img_list[j][1],
cv2.HISTCMP_BHATTACHARYYA)
img_list[i][2] = score_total
logger.info("Sorting...")
return sorted(img_list, key=lambda x: x[2], reverse=True)
def sort_color(self):
Score by channel average intensity
logger.info("Sorting by channel average intensity...")