Страницы

Поиск по вопросам

понедельник, 30 марта 2020 г.

Получение среднего цвета изображения

#любой_язык #цвета


Два дня тому назад, отключили интернет и пришлось быть без интернета. Вместо музыки
на сайте слушал приложение Windows "Музыка Groove". И тут я заметил интересную вещь:
приложение брало изображение саундтрека и аддитивным смещением  вычисляло средний цвет
всего изображения.


Саундтреки MARVEL были взяты для примера.
Как это можно реализовать? Подойдут решения на WPF, Windows Forms, ASP.NET или просто
на HTML/CSS/Javascript. 
    


Ответы

Ответ 1



Python-скрипт на основе примера из документации OpenCV: import cv2 import numpy as np from sklearn.cluster import KMeans from collections import Counter def get_dominant_color(image, k=4): image = image.reshape((image.shape[0] * image.shape[1], 3)) clt = KMeans(n_clusters=k) labels = clt.fit_predict(image) label_counts = Counter(labels) dominant_color = clt.cluster_centers_[label_counts.most_common(1)[0][0]] return list(dominant_color) bgr_image = cv2.imread('image.png') hsv_image = cv2.cvtColor(bgr_image, cv2.COLOR_BGR2HSV) dom_color = get_dominant_color(hsv_image) dom_color_hsv = np.full(bgr_image.shape, dom_color, dtype='uint8') dom_color_bgr = cv2.cvtColor(dom_color_hsv, cv2.COLOR_HSV2BGR) output_image = np.hstack((bgr_image, dom_color_bgr)) cv2.imshow('Dominant Color', output_image) cv2.waitKey(0)

Комментариев нет:

Отправить комментарий