Рубрики
Без рубрики

Колордеция – пакет Python Colordetect

Картинки. Вот и все. Картинки. Как точка практичности, возьмите модельера (как участник форума Viv … Tagged с Python, OpenSource, DataScience, Tutorial.

Картинки. Вот и все. Картинки. Как точка практичности, возьмите модельера (как участник форума, ярко описанный мне в какой -то момент). Вам дают изображение или имеете в вашем распоряжении изображение, которое просто щекочет любопытство и хочет включить его в одну из ваших новых линий. Давайте немного перенесем в раздел генетики. Учитывая, например, изображение блюда Петри, с пигментированными бактериями или подобными организмами, и вы хотели бы найти изобилие этого организма или организмов на этом конкретном образе. Получить суть?

Вот почему у нас есть Colordetect Анкет Позволяя вам забить эти цвета прямо с изображения, или если вы были немного сумасшедшими, видео. Для обзора, мы запустим его по установке.

Как и все питонисты, создайте виртуальную среду и установите.

pip install ColorDetect

Для этой демонстрации мы одолжим фотографию Грейсона Йоралемона.

Программа, которая получает цвета на этом конкретном изображении.

from colordetect import ColorDetect

user_image = ColorDetect('media/random_balls.jpg')

colors = user_image.get_color_count()

print(colors)

Colordetect пойдет, сделает свое дело и вернет это:

$ python get_colors.py

{'[59.0, 70.0, 198.0]': 7.63, '[245.0, 155.0, 186.0]': 9.0, '[232.0, 22.0, 103.0]': 11.98, '[207.0, 143.0, 3.0]': 35.54, '[88.0, 70.0, 34.0]': 35.85}

Цветовое описание изображения, разбивая соответствующие самые распространенные цвета, чтобы сказать, эй, это изображение имеет 7,63 % это занято этим RGB Цвет: '[59.0, 70.0, 198.0]' Анкет

Если бы мы хотели гекс Вместо этого мы передали бы это в качестве параметра в get_color_count () Анкет

colors = user_image.get_color_count(color_format='hex')

#colors
# {'#3b46c6': 7.63, '#f59bba': 9.0, '#e81667': 11.99, '#cf8f03': 35.56, '#584622': 35.83}

Мы могли бы, конечно, искать больше цвета, чем только пять самых доминирующих.

user_image.get_color_count(color_format='hex', color_count=8)

В зависимости от размера или соотношения изображения, это может занять минуту. В качестве примера можно привести к низкоподобному изображению, скажем, 2 Мп против верхней части изображения камеры линейной камеры. Эти два изображения, несмотря на то, что указывают на один и тот же объект или сцену, имеют очень разные соотношения пикселей.

Давайте продолжим, и вместо того, чтобы получить цвет как переменную, напишите этот цвет на изображение.

user_image.write_color_count()
# save the image after writing the color count to it
user_image.save_image('media', 'processed.jpg')

Мы сохраняем это изображение в справочнике медиа с именем обработан.jpg :

Идеально!

У нас было что -то о сумасшедших людях с видео, не так ли? Теперь, где это видео … О, Вот это Анкет Наш Земля.mp4 файл.

from colordetect import VideoColor


my_video = VideoColor('media/earth.mp4')

video_colors = my_video.get_video_frames( progress=True)

print(f"{video_colors}")
{'[137.0, 165.0, 182.0]': 0.92, '[71.0, 84.0, 95.0]': 2.16, '[24.0, 30.0, 50.0]': 11.17, '[7.0, 10.0, 26.0]': 17.59, '[0.0, 0.0, 0.0]': 68.83, '[143.0, 170.0, 187.0]': 0.84, '[76.0, 89.0, 101.0]': 2.09, '[26.0, 32.0, 52.0]': 11.18, '[8.0, 11.0, 28.0]': 16.69, '[135.0, 163.0, 181.0]': 0.95, '[76.0, 88.0, 98.0]': 2.05, '[8.0, 11.0, 27.0]': 15.43, '[127.0, 160.0, 179.0]': 0.94, '[71.0, 83.0, 94.0]': 2.38, '[7.0, 11.0, 27.0]': 15.72, '[124.0, 160.0, 181.0]': 0.9, '[69.0, 84.0, 96.0]': 2.26, '[26.0, 32.0, 53.0]': 13.12, '[125.0, 160.0, 182.0]': 0.89, '[68.0, 82.0, 95.0]': 2.27, '[132.0, 166.0, 186.0]': 0.79, '[71.0, 87.0, 100.0]': 2.1, '[25.0, 32.0, 52.0]': 14.18, '[132.0, 164.0, 183.0]': 0.89, '[70.0, 85.0, 97.0]': 2.08, '[132.0, 165.0, 183.0]': 0.9, '[73.0, 88.0, 99.0]': 2.06, '[26.0, 33.0, 53.0]': 12.11, '[8.0, 10.0, 27.0]': 16.76, '[134.0, 166.0, 184.0]': 0.88, '[132.0, 165.0, 185.0]': 0.86, '[74.0, 88.0, 100.0]': 2.0, '[26.0, 33.0, 52.0]': 10.65, '[7.0, 10.0, 27.0]': 16.93, '[124.0, 157.0, 178.0]': 0.99, '[68.0, 82.0, 93.0]': 2.14, '[25.0, 31.0, 50.0]': 10.66, '[124.0, 160.0, 182.0]': 0.88, '[67.0, 82.0, 94.0]': 2.19, '[25.0, 31.0, 49.0]': 10.68, '[124.0, 160.0, 183.0]': 0.85, '[67.0, 83.0, 95.0]': 2.0, '[25.0, 30.0, 49.0]': 11.04, '[123.0, 160.0, 182.0]': 0.87, '[24.0, 29.0, 47.0]': 11.15, '[23.0, 29.0, 47.0]': 10.6, '[6.0, 9.0, 26.0]': 19.34, '[67.0, 83.0, 97.0]': 2.0, '[24.0, 29.0, 48.0]': 9.31, '[125.0, 161.0, 184.0]': 0.85, '[67.0, 84.0, 97.0]': 1.98, '[127.0, 162.0, 183.0]': 0.87, '[67.0, 83.0, 96.0]': 1.96, '[23.0, 29.0, 46.0]': 8.58, '[5.0, 8.0, 25.0]': 17.77, '[125.0, 161.0, 183.0]': 0.88, '[68.0, 84.0, 98.0]': 1.9, '[24.0, 29.0, 46.0]': 6.95, '[67.0, 84.0, 99.0]': 1.89, '[133.0, 166.0, 186.0]': 0.81, '[67.0, 86.0, 99.0]': 1.85, '[23.0, 28.0, 45.0]': 6.83, '[5.0, 8.0, 24.0]': 22.22, '[135.0, 165.0, 186.0]': 0.85, '[69.0, 86.0, 100.0]': 1.79, '[22.0, 27.0, 43.0]': 7.22, '[5.0, 7.0, 24.0]': 22.48, '[73.0, 91.0, 105.0]': 1.69, '[129.0, 163.0, 185.0]': 0.85, '[69.0, 85.0, 98.0]': 1.9, '[21.0, 27.0, 44.0]': 7.25, '[4.0, 7.0, 24.0]': 21.7, '[68.0, 86.0, 101.0]': 1.9, '[22.0, 27.0, 45.0]': 7.91, '[126.0, 160.0, 181.0]': 0.94, '[66.0, 83.0, 96.0]': 1.91, '[22.0, 27.0, 46.0]': 9.19, '[129.0, 164.0, 185.0]': 0.84, '[69.0, 86.0, 99.0]': 1.96, '[21.0, 27.0, 46.0]': 10.65, '[133.0, 165.0, 185.0]': 0.85, '[23.0, 29.0, 48.0]': 10.61, '[7.0, 9.0, 26.0]': 17.7, '[135.0, 165.0, 185.0]': 0.85, '[73.0, 88.0, 100.0]': 1.96, '[24.0, 29.0, 50.0]': 11.34, '[139.0, 164.0, 177.0]': 0.92} 

Мы можем обнаружить, что цвета слишком много для нашего варианта использования. Итак, давайте сократим это:

print(my_video.color_sort(color_count=6))
{'[0.0, 0.0, 0.0]': 68.83, '[5.0, 7.0, 24.0]': 22.48, '[5.0, 8.0, 24.0]': 22.22, '[4.0, 7.0, 24.0]': 21.7, '[6.0, 9.0, 26.0]': 19.34, '[5.0, 8.0, 25.0]': 17.77}

Это вернет 6 самых доминирующих цветов из всего видео, взяв раму на каждую секунду. Выглядит намного лучше! Если вы не хотите использовать все цвета, то есть.

Я буду выполнять это. Все зависит от качества входного носителя и длины, если в этом случае это видео. Возьмите это так, видео в длину 5 минут, показывающее широкое разнообразие цветов из всех видов карандаша против короткого видео, как только что показано. Помните, процесс за кадр каждой секунды. Я уверен, что это будет рассмотрено в будущем выпускать .

Мы можем удержаться здесь и дать парам остыть. Будьте в курсе Пакет По мере того, как все больше функций и улучшений производительности выявляются.

Ваш,

Гриноды

Оригинал: “https://dev.to/marvinkweyu/colordetection-python-colordetect-package-12li”