Я не знаю, почему никакое изображение или даже пипетка не показывают, когда интерпретируют примечание программы, что никаких ошибок не появляется.в моей программе я хочу знать, какие цвета в моем изображении, кроме того, считать частоту цветов.Кроме того, в своем коде я определил количество цветов, может кто-нибудь сказать мне, как заставить программу автоматически считать частоту цветов.
Это мой код:
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np
import cv2
from collections import Counter
from skimage.color import rgb2lab, deltaE_cie76
import os
%matplotlib inline
def RGB2HEX(color):
return "#{:02x}{:02x}{:02x}".format(int(color[0]), int(color[1]), int(color[2]))
def get_image(image_path):
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
return image
modified_image = cv2.resize(image, (600, 400), interpolation = cv2.INTER_AREA)
modified_image = modified_image.reshape(modified_image.shape[0]*modified_image.shape[1], 3)
def get_colors (number_of_colors, show_chart):
clf = KMeans(n_clusters = number_of_colors)
labels = clf.fit_predict(modified_image)
counts = Counter(labels)
center_colors = clf.cluster_centers_
# We get ordered colors by iterating through the keys
ordered_colors = [center_colors[i]/255 for i in counts.keys()]
hex_colors = [RGB2HEX(ordered_colors[i]*255) for i in counts.keys()]
rgb_colors = [ordered_colors[i]*255 for i in counts.keys()]
if (show_chart):
plt.figure(figsize = (8, 6))
plt.pie(counts.values(), labels = hex_colors, colors = ordered_colors)
get_colors(get_image('C://Users/user/Desktop/g.jpg'), 5, True)
return rgb_colors