Направете снимка с помощта на уеб камерата на лаптопа и я преобразувайте в 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.