Направете снимка с помощта на уеб камерата на лаптопа и я преобразувайте в ASCII изкуство в 5 лесни стъпки.

В предишната ми статия видяхме „как да конвертирате изображения в ASCII изкуство в Python“. Имах някои много интересни предложения в коментарите - затова реших да направя последващи действия.

Тази статия ще бъде подобрение на кода, написан в предишната. Така че, ако не сте го проверили, моля, направете го - защото няма да повтарям секции, които са идентични.

Този път ще направим селфи с помощта на уеб камерата на лаптопа, вместо да конвертираме локално изображение.

Освен това ще подобрим преобразуването, като зададем различни тегла за стойностите R, G и B при изчисляване на яркостта на пиксел.

1. Направете снимка

С помощта на cv2 модула е много лесно да направите снимка с уеб камерата на лаптопа. Реших да го запазя на диска, защото често исках да го отворя и да го сравня с генерирания текстов файл.

2. ASCII символна карта

Както в предишната ми статия, опитах се да използвам същия ascii_characters_by_surface:

ascii_characters_by_surface = "`^\",:;Il!i~+_-?][}{1)(|\\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$"

Въпреки че не бях напълно доволен от крайния резултат, реших да намаля броя на знаците на картата.

След няколко опита запазих само 9 знака:

ascii_characters_by_surface = ".:-=+*#%@"

Следователно ASCII изкуството имаше по-малко „цветове“, но изображението беше по-ясно:

3. Изчисляване на яркостта на пиксела

Следвайки друго предложение от коментарите, въведох различни тегла за стойностите R, G и B при изчисляване на яркостта на пиксела:

channels_weights = (0.299, 0.587, 0.114)

Следователно сега можем да използваме следния метод за изчисляване на яркостта на пиксел:

Следователно стойността за max_brightnessтрябваше да бъде променена. Така че току-що извиках метода по-горе с еквивалентните стойности на бял пиксел:

max_brighness = get_pixel_brightness((255, 255, 255))

4&5. Преобразуване на пиксел в символ и анализ на изображението

В тези два раздела нищо не се е променило от последната статия. Ако искате да го следвате стъпка по стъпка, не забравяйте да го проверите: „Как да конвертирате изображение в ASCII Art с Python в 5 стъпки“.

Пълен изходен код:

И, разбира се, селфи с първия ми „зрител“и най-големият ми поддръжник :)

Повече съдържание в PlainEnglish.io. Регистрирайте се за нашия безплатен седмичен бюлетин. Следвайте ни в Twitter, LinkedIn, YouTube и Discord.