ColorDetection - Python ColorDetect 패키지

이미지. 그게 다야. 이미지. 실용성의 관점에서 패션 디자이너를 예로 들어 보겠습니다. 호기심을 자극하고 새 라인 중 하나에 통합하고 싶은 이미지가 있거나 마음대로 사용할 수 있는 이미지가 있습니다. 유전학 섹션으로 약간 방향을 틀어 봅시다. 예를 들어 착색된 박테리아 또는 유사한 유기체가 있는 페트리 접시 이미지가 주어지면 이 특정 이미지에서 해당 유기체 또는 유기체의 풍부함을 찾고자 합니다. 요지를 이해하시겠습니까?

그래서 우리는 ColorDetect . 이미지에서 바로 해당 색상을 잡을 수 있도록 하거나 약간 미쳤다면 비디오. 개요를 보려면 설치부터 시작하겠습니다.

모든 Pythonista가 가지고 있듯이 가상 환경을 만들고 설치하십시오.

pip install ColorDetect


이 데모에서는 Greyson Joralemon의 사진을 빌릴 것입니다.



이 특정 이미지의 색상을 가져오는 프로그램입니다.

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]' .

대신 이것에 대한 16진수를 원하면 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}


물론 우리는 가장 지배적인 5가지 색상보다 더 많은 색상을 찾을 수 있습니다.

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


이미지의 크기나 비율에 따라 다소 시간이 걸릴 수 있습니다. 예를 들어, 낮은 그래픽 이미지, 예를 들어 2MP 대 고화질 최고 카메라 이미지입니다. 이 두 이미지는 동일한 물체나 장면을 가리키고 있음에도 불구하고 픽셀 비율이 매우 다릅니다.

계속해서 색상을 변수로 가져오는 대신 이 색상을 이미지에 씁니다.


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


이 이미지를 이름processed.jpg으로 미디어 디렉토리에 저장합니다.



완벽!

우리는 비디오를 가진 미친 사람들에 대해 무언가를 가지고 있었습니다, 그렇죠?
자, 그 비디오는 어디에...오, here it is . 우리의 earth.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분 길이의 비디오로 모든 종류의 크레용에서 다양한 색상을 보여줍니다. 프로세스는 매초마다 프레임 단위로 진행된다는 점을 기억하십시오. 이 문제는 나중에 해결될 것이라고 확신합니다release.

여기서 잠시 멈추고 증기를 식힐 수 있습니다.
더 많은 기능과 성능 향상이 밝혀지면 package을 최신 상태로 유지하십시오.

당신 것,

TheGreencodes

좋은 웹페이지 즐겨찾기