Из чб в цвет: Colorize Photos превращает чёрно-белые фотографии в цветные
Colorize Photos превращает чёрно-белые фотографии в цветные
Сервис Colorize Photos создан группой исследователей, занимающихся нейронными сетями, для демонстрации одного из вариантов практического применения искусственного интеллекта. В данном случае он используется для раскрашивания чёрно-белых фотографий. Любой посетитель сайта может ввести в поле ссылку на какой-нибудь старый снимок и нажатием одной кнопки превратить его в цветной.
Несмотря на то, что снимки обрабатываются всего за несколько секунд, объём работы, производимой искусственным интеллектом, очень велик. Ведь за это время ему требуется проанализировать содержимое картинки, распознать на ней знакомые объекты, извлечь из своей базы данных примерные цвета этих объектов и, наконец, применить их к фотографии.
Результаты работы Colorize Photos довольно сильно зависят от предлагаемого к обработке снимка. Некоторые фотографии просто удивляют правдоподобием и разнообразием цветов, другие выглядят, скажем прямо, не очень. После нескольких экспериментов становится понятно, что лучше всего Colorize Photos справляется с цветами человеческого тела, воды, деревьев, автомобилей, зданий. Вот, посмотрите ещё на несколько примеров.
Выглядит интересно, не правда ли?
Поэкспериментировать со своими фотографиями вы сможете на сайте проекта, ссылку на который найдёте чуть ниже. И не забудьте поделиться с нами лучшими результатами в комментариях!
Colorize Photos →
Как сделать из черно-белой фотографии цветную онлайн
В этой статье вы узнаете, как можно сделать из черно-белой фотографии цветную онлайн. Речь пойдет о четырех сервисах, где в пару кликов можно преобразовать картинку. Также я здесь описал один сайт, где можно из цветного фото сделать черно-белое.
Не будем вдаваться в подробности, как эти сервисы работают, и по какому принципу, нам ведь главное результат. Но хотел бы отметить, что цвета обработанного фото могут отличаться от оригинала. Например, если из цветной картинки сделать черно-белую, а затем ее раскрасить в одном из описанных сервисов, то цвет может отличаться от оригинала.
Один сервис работает как нейронная сеть, другой обрабатывает цифровые фото с помощью искусственного интеллекта, а третий еще как-то. Но какой из них вам больше подходит, вы определитесь уже сами. Я разницы не нашел. Как по мне, так они все отлично подходят для преобразования фото в цвет.
1. Colorize — из чб фото в цветное онлайн
Для теста, я нашел в интернете старую черно-белую фотографию и загрузил ее. Во время обработки фото, можно ввести адрес email, на который придет уже цветное фото. И вот что у меня получилось
Как видите, получилось неплохо. А вот еще нашел очень старую черно-белую фотографию женщины, и смотрите, что получилось на этот раз. Вроде тоже неплохо.
2. Colorize Photos — делаем черно белое цветным
Colorize Photos превращает черно-белую фотографию в цветную. Здесь можно загрузить картинку с компьютера или указать ссылку на изображение в интернете.
Для теста, я нашел ч/б фотографию и загрузил на сервис. На мой взгляд, результат получился неплохой.
Сервис от Mail.ru
Еще одни сервис, где можно сделать из черно-белой фотографии цветную онлайн. Здесь используется технология нейросети. Система делает не только черно-белое фото цветным, но и устраняет на нем дефекты. Работать с сервисом также легко, как и с предыдущими: загружаете ч/б фото и получаете результат.
На других сервисах, я заметил, что система хорошо распознает природу и людей, а вот что будет, если загрузить розу. Я нашел черно-белую фотографию розы и получил неожиданный эффект. Роза получилась ни красная и ни белая, а не поймешь какая.
А вот загрузил еще одну картинку, но на этот раз эффект получился отличный. Цвета картинки подходят идеально.
После этого, обработанное фото можно скачать на компьютер, или сохранить в облаке mail.ru.
3. Colourizer — из черно-белого в цветное фото онлайн
Еще один сервис, где можно сделать черно-белое фото цветным. Переходим на сайт Colourise, разгадываем капчу и загружаем фотографию. Лучше загружать фотографии с более высоким разрешением, тогда эффект должен быть лучше.
4. IMGonline — цветное изображение в черно-белое
Следующий сервис позволяет сделать цветное изображение черно-белым, и называется он IMGonline. Здесь вы найдете много хороших инструментов для работы с фотографиями, но мы рассмотрим только один из них – «сделать чёрно-белое фото онлайн». То есть, мы из цветного, будем делать черно-белое.
Здесь можно включить автоматическую гаммо-коррекцию, выбрать формат выходного файла и качество. Вот что у меня получилось.
Впечатляет? Знаю, что нет, т. к. обработать так фотографию может любой редактор J
Вот все, я описал пять сервисов, где можно сделать из черно-белой фотографии цветную онлайн, и один сервис, где можно сделать обратный эффект.
Как сделать черно-белое фото цветным: 4 сервиса для автоматической раскраски черно-белых фотографий
Следующие поколения будут смотреть на нас с помощью цветных видеороликов высокого разрешения. А вот образы наших бабушек и дедушек мы храним чаще всего в виде пожелтевших и потрескавшихся черно-белых фотографий. Они передают окружение и дух того времени, но ему явно не хватает красок. А ведь они могли бы играть важную роль, но фотограф физически не мог передать их нам.
А ведь теперь уже невозможно точно воспроизвести условия, в которых совершался снимок. Можно лишь попытаться добавить цвет в фотографию и попытаться представить, что видел автор снимка в этот момент. Это сродни настоящему волшебству и путешествию сквозь время.
Теперь придать красок историческим снимкам или, например, своим детским (или родительским) фотоальбомам может каждый желающий.
♥ ПО ТЕМЕ: Как сделать фото с эффектом шлефа (длинной выдержкой) на iPhone: 2 способа.
Как сделать черно-белое фото цветным на онлайн-сервисе Сolourise
Программисты и аналитики сингапурской компании GovTech запустили проект Сolourise на основе искусственного интеллекта для колоризации классических старых фотографий. Команда поставила себе цель – создать изображения с правдоподобными цветами. Но никто не сможет дать гарантии, что новая фотография в точности отображает фактическое положение дел на снимке. Надо сказать, что колоризация является активно изучаемой областью. Можно вспомнить хотя бы раскрашенные в России классические черно-белые фильмы, получившие вторую жизнь. Идеальным результат быть не может – одни фотографии лучше поддаются обработке, а другие – хуже. Нравится новое фото тоже не всем.
Создатели сервиса гарантируют, что загруженные пользователями фотографии не будут предоставляться третьей стороне. Немного расскажем о том, как появился на свет этот интересный сайт.
Ручная колоризация фотографии является очень трудоемким процессом. Специалисту необходимо сперва детально изучить исторический, культурный и географический контекст работы и подобрать соответствующие требуемые цвета. Затем черно-белое фото раскрашивают с помощью программ. Чаще всего это обычный Photoshop. Такова очень упрощенная схема. Аналогично свои задачи решает и компьютерная программа. Она должна идентифицировать объекты на черно-белом фоне и определить для них приемлемый цвет с учетом прошлого опыта. Затем происходит раскраска.
Команда из Сингапура использовала методику глубокого обучения Generative Adversarial Networks (GAN). В нее входит одна нейронная сеть с миллионами параметров, пытающаяся предсказать значения цвета для разных черно-белых пикселей на основе особенностей изображения и другая, пытающая определить фотореалистичность сгенерированных цветов по сравнению с аналогичными фотографиями. Модель продолжает самообучение до тех пор, пока генератор создает «поддельные» цвета.
Для обучения модели был использован набор из 500 тысяч старых доступных фотографий и множество графических процессоров NVIDIA V100. Для улучшения результатов была задействована открытая библиотека изображений от Google. Это помогло обработать части тела, с которыми оригинальная модель плохо работала: руки, ноги, трудно идентифицируемые конечности. Помощь Google увеличила и скорость обучения.
Первоначально модель работала на локальном кластере внутри офиса – доступ к ней имела лишь команда разработчиков. Чтобы результат был виден всем, потребовалось веб-приложение, через которое сервис мог бы получать запросы снаружи. В качестве облачного провайдера была выбрана платформа Google. Она позволяет защититься от атак, хранить и кэшировать статический контент, балансировать и распределять нагрузку.
Этап окрашивания требует значительных вычислительных мощностей и занимает около 3 секунд. Задачей постановки запросов в бэкенд занимается NGINX-сервер. Он может попросить пользователя повторить попытку позже, если частота входящих запросов превышает скорость работы внутренних служб. Ключевым моментом архитектуры является автоматическое масштабирование виртуальных машин в зависимости от объема трафика. Это позволяет экономить средства, так как дополнительные мощности активируются только в случае запроса на них.
Сервис Colourise хорошо себя показал на изображениях с высоким разрешением, на которых значительную часть фотографии занимают люди. Хорошо справляется и с пейзажами. Итоговые изображения выглядят правдоподобно, если на них есть объекты, присутствующие в обучающем наборе. Модель правильно определяет их и раскрашивает нужным образом.
А вот если на фотографии оказывается нечто нераспознанное, может получиться забавный эффект окклюзии. В компьютерном зрении это важная проблема, связанная с трудностями идентификации частично показанных объектов.
♥ ПО ТЕМЕ: 30 самых знаменитых фейковых фото, в которые вы могли поверить.
Другие аналогичные сервисы: Algorithmia и Колор
Сервис Colourise уникальным не является, его конкурентом является хотя бы знаменитый Algorithmia. Есть своя разработка под названием Колор и у Артемия Лебедева. Разнообразие вариантов играет на руку нам, пользователям – всегда можно выбрать наилучший результат от того или иного ресурса.
Здесь же необходимо отметить и сервис Paintschainer, который отлично подойдет для автоматического раскрашивания различных рисунков, скетчей, набросков и других изображений.
Смотрите также:
3 способа расскрасить черно-белое фото в цветное
Сейчас я расскажу, как превратить черно-белое фото в цветное, раскрасив старую фотографию новыми сочными цветами. Нам нужно перевести фотографию из черно-белого изображения в цветное.
Хотя цветная фотография появилась еще в XIX веке, значительная часть фото, сделанных во второй половине XX века, снималась черно-белыми. Этот способ был более дешевым и распространенным в то время. Тогда еще не было цифровых фотоаппаратов и смартфонов со встроенными камерами.
У многих из нас сохранились старые черно-белые фотографии, снятые в различные моменты жизни: свадьбы родителей, фото бабушек и дедушек, детские фото разных лет и т. п. Возможно, вам бы хотелось превратить черно-белые фотографии, хранящиеся в семейных альбомах, в цветные изображения, чтобы увидеть старые снимки в насыщенном цвете.
Как сделать черно-белое фото цветным? Существует несколько способов для решения этой задачи при помощи программного обеспечения.
Можно воспользоваться графической программой, установленной на компьютере, или онлайн сервисом в интернете. В первом случае, в большинстве программ пользователю придется выполнять многие действия вручную и потратить на это довольно много времени. Второй вариант предполагает выполнение всех операций на удаленном онлайн сервисе без непосредственного участия пользователя за небольшой период времени.
В этой статье я расскажу, как сделать черно-белое фото цветным онлайн, с помощью нескольких сервисов. Пользователю не потребуется устанавливать на свой компьютер программу для редактирования фотографий. Вся работа будет проведена автоматически на удаленном сервисе в интернете.
Перед выполнением этой операции, пользователю потребуется оцифровать старые черно-белые фотографии, например, с помощью сканера. Сканер переведет физический снимок в цифровое изображение. Для этой задачи подойдет любое современное МФУ (Многофункциональное) устройство, в состав которого входят принтер, сканер, копир.
В итоге, на вашем компьютере появятся черно-белые изображения, с которыми можно будет выполнять дальнейшую работу по автоматической раскраске.
Перевод из черно-белого цвета в цветное на онлайн сервисе в общем случае проходит по следующим последовательным шагам:
- На онлайн сервис загружается черно-белое изображение.
- На сервисе выполняется автоматическая раскраска фотографии для превращения снимка в цветное фото.
- Готовое цветное изображение скачивается на компьютер.
Необходимо учитывать, что при выполнении автоматической раскраски из черно-белого фото в цветное онлайн, не всегда получается желаемый результат, в основном из-за низкого качества исходных фотографий. Исходные изображения лучшего качества с большей долей вероятности смогут стать полностью цветными без появления возможных ошибок. Обычно, чем позднее по времени было сделано фото, тем лучше получается итоговый результат.
Раскраска из черно-белого фото в цветное онлайн на Colorize Photos
Сейчас мы попробуем сделать черно-белое цветным онлайн с помощью онлайн сервиса Colorize Photos, расположенного на популярном ресурсе Algorithmia. На сервисе Colorize Photos используется искусственный интеллект, использующий нейронные сети глубокого обучения.
Бесплатный сервис создан учеными из Калифорнийского университета в Беркли. На Colorize Photos имеется API для автоматического использования возможностей сервиса.
Для того, чтобы превратить цветное изображение в черно-белое выполните следующие действия:
- Войдите на страницу Colorize Photos на сайте Algorithmia.
- Вставьте в поле ссылку на URL-адрес изображения из интернета, или нажмите на кнопку «Upload» для загрузки фотографии с компьютера.
- Для запуска автоматического раскрашивания изображения, добавленного по ссылке, нажмите на кнопку «Colorize it» (Раскрась это). При использовании фото с ПК, процесс раскраски фото начнется автоматически.
- В результате обработки, откроется окно с двумя вариантами фото для сравнения: черно-белым и раскрашенным.
- Нажмите на одну из кнопок для загрузки цветной фотографии на компьютер:
- Download Comparison — скачать сравнение изображений.
- Download Colorized Image — скачать цветное изображение.
В результате, мы получаем цветное фото из черно-белого онлайн. У вас на компьютере появится раскрашенная фотография, сделанная на веб-сервисе. Этот снимок был сделан в 60-х годах XX века.
Вам также может быть интересно:
Как из черно-белой фотографии сделать цветную на ColouriseSG
Онлайн сервис Colourise создан в компании GovTech программистами из Сингапура. Целью проекта является раскраска классических черно-белых фотографий с помощью алгоритмов, работающих на основе искусственного интеллекта, правдоподобными цветами. Используется нейронная сеть, имеющая множество параметров, с методикой глубокого обучения Generative Adversarial Networks (GAN).
Загруженные изображения не хранятся на серверах сервиса Colourise.sg.
Пройдите следующие шаги:
- Откройте главную страницу сайта Colourise.sg.
- Прокрутите колесико прокрутки вниз, кликните курсором мыши в капче, напротив пункта «Я не робот». Этим способом сервис защищается от автоматических действий роботов.
- Перетащите фотографию с ПК в специальную область с помощью мыши, или нажмите на кнопку «Select photo» для добавления изображения с компьютера при помощи Проводника Windows.
- В специальной форме откроются два вида изображения для сравнения: до раскрашивания и после обработки.
- Нажмите на одну из кнопок:
- Download result — скачать результат.
- Download comparison — скачать сравнение изображений.
- Color new photo — раскрасить новое фото.
Посмотрите на итоговую фотографию. Фото сделано в 70-х годах XX века.
Как сделать черно-белое фото цветным онлайн бесплатно на сервисе «Колор»
Онлайн сервис «Колор» разработан в Студии Артемия Лебедева. Сервис работает на основе алгоритмов машинного обучения, предназначен для автоматической раскраски монохромных изображений.
В «Колор» поддерживается загрузка изображений размером не более 1 МБ.
Выполните следующие действия:
- Зайдите на веб-страницу сервиса Колор.
- Перетащите фото в центральную область на сайте с ПК или загрузите картинку при помощи Проводника.
- На сервисе запустится автоматический процесс обработки черно-белого изображения.
- После завершения процесса откроются два изображения: исходное и раскрашенное.
- Нажмите на одну из кнопок для дальнейшего действия:
- Опубликовать в галерее.
- Опубликовать в галерее и скачать.
- Просто скачать.
- На компьютер будет загружено одно изображение, состоящее из двух фотографий.
- Откройте изображение в любом просмотрщике изображений, сделайте скриншот с раскрашенного варианта фотографии, чтобы сохранить этот снимок на ПК.
В итоге, у нас получилась цветная фотография из черно-белой онлайн.
Выводы статьи
Многие пользователи хранят в альбомах старые черно-белые фотографии, которые напоминают о прежних временах и людях. Имеются способы осовременить старые снимки раскрасив изображения. В некоторых ситуациях, нет необходимости в использовании программ, установленных на компьютере, потому что можно, например, из черно-белой фотографии сделать цветную онлайн на сервисе в интернете.
Как превратить черно-белое фото в цветное онлайн (видео)
Похожие публикации:
4 крутых приложения для редактирования
Сегодня самые обычные смартфоны снимают яркие цветные изображения вполне приемлемого качества. Однако всего несколько десятилетий назад люди довольствовались черно-белыми фотографиями. Наверняка в ваших семейных альбомах найдутся подобные снимки бабушек и дедушек, достойные оказаться в красивой рамочке на полке, а не затеряться в виртуальной галерее телефона. В нашей статье мы расскажем, как сделать ч/б фото цветным с помощью специальных мобильных приложений и распечатать его.
Уникальный проект на основе искусственного интеллекта от сингапурской компании GovTech, позволяющий в считанные секунды раскрасить старые фотографии. Главной «фишкой» программы является наличие нейронной сети, пытающейся предсказать значения цветов для пикселей на основе особенностей снимка. Для обучения искусственного интеллекта специалисты использовали набор из 500 тысяч старинных фото, а также задействовали библиотеку изображений Google.
С помощью сервиса Сolourise вы легко раскрасите ч/б фото. Однако стоит отметить, что приложение хорошо работает только с хорошо распознаваемыми элементами снимка. Если оно не распознает деталь, то может получиться довольно забавный цветовой эффект, зачастую неестественный.
Пользоваться программой очень просто. Все, что от вас потребуется, — загрузить бесцветное фото в специальный сервис на официальном сайте, дождаться завершения обработки и скачать готовый результат. Сolourise — идеальное решение для тех, кто хочет из черно-белого фото сделать цветное быстро, просто и бесплатно.
Algorithmia — это популярный сервис, который использует при обработке технологии «глубинного обучения». В основе программы, так же как и в Сolourise, лежит искусственный интеллект. Для обучения цветоопределению приложение проанализировало свыше миллиона изображений.
Использование сервиса максимально просто и понятно. Чтобы сделать черно-белое фото цветным, достаточно вставить URL снимка в строку поиска и нажать «Colorize It». После обработки на странице вы увидите два варианта изображения: бесцветный и в цвете.
Приложение Paintschainer незаменимо для раскрашивания готовых эскизов. Если вы любите рисовать, создавать собственные комиксы — данный сервис именно то, что вам нужно. Программа, в основе которой гибкая нейронная сеть, подбирает максимально подходящие оттенки. Если вас не устраивает автоматический подбор, вы можете самостоятельно показать приложению, какие цвета лучше использовать.
Как раскрасить ч/б фото с помощью Paintschainer? Загрузите в сервис свой эскиз, и приложение переведет его в цвет. В вашем распоряжении три варианта автоматического окрашивания и панель с инструментами для ручной настройки.
Всем известный сервис поможет вам не только полностью раскрасить снимок, но и сделать ч/б фото с цветными элементами. Чтобы получить черно-белый фон на фото, выполните несколько простых шагов:
- Выберите фото на телефоне, зайдите в Инструменты, найдите подходящий ч/б фильтр и примените;
- Далее следует нажать в верхнем углу на значок со слоями и выбрать Посмотреть изменения — ч/б — Изменить;
- Для обесцвечивания фото выберите значок, где внутри квадрата находится кружок;
- Остается только выделить объект, который вы хотите сделать цветным.
Преимущество Snapseed заключается не только в том, что программа может сделать черно-белый фон на фото, но и в том, что пользоваться сервисом невероятно просто, а работа с ним абсолютно бесплатна.
Все 4 приложения позволяют из серых и скучных фотографий сделать яркие красочные изображения, которые просто обязаны быть распечатаны. Пусть оригинальные снимки станут настоящим украшением стен, книжного шкафа или даже холодильника. В этом вам поможет приложение для печати фотографий Mimigram. Здесь вы в считанные минуты можете заказать стильные магнитики с фотографиями, качественные фотографии в рамках или собрать из снимков Арт-холст. Программа Mimigram доступна для скачивания в App Store или Google Play.
Узнайте еще больше об обработке изображений в нашем блоге. Здесь вы найдете море идей по съемке и редактированию снимков, а также созданию крутых подарков из фотографий.
Как за пару секунд раскрасить черно-белую фотографию
У всех нас в семейных архивах есть старые черно-белые фотографии. Глядя на них порой трудной представить, как это всё выглядело на тот момент в реальности: какие были краски, цвета, оттенки…
При помощи программы Photoshop и при наличии большого количества свободного времени можно сделать черно-белые фотографии цветными. Однако этот процесс довольно кропотливый, требует усидчивости, а результат не всегда приносит удовлетворение.
Сервис Algorithmia (Нейросеть) позволяет раскрасить черно-белые фотографии онлайн, вдохнув в них таким образом новую жизнь. На основе анализа порядка миллиона загруженных цветных изображений удалось создать алгоритм, который максимально точно подбирает цвет для каждого фрагмента и участка фотографии.
Вы можете испытать его сами прямо сейчас! Для этого достаточно указать ссылку на фото в интернет (URL) либо самостоятельно загрузить его, нажав кнопку «Upload photo».
Анализ и обработка происходят практически мгновенно: уже спустя несколько секунд Вы получите раскрашенную черно-белую фотографию! В режиме онлайн, перемещая ползунок, можно сравнить варианты «ДО» и «ПОСЛЕ».
Это настоящая магия, которая позволяет нам окунуться в далекое прошлое, когда цветных фотографий еще не было…
Для теста мы взяли порядка десяти старых фото из разных эпох и сделали их цветными при помощи Algorithmia. Вот некоторые из результатов:
Восхитительно, не правда ли? В ряде случаев наверное могло бы и получше, но и этот результат очень впечатляет. Плюс не забывайте о том, что интеллектуальный онлайн сервис Нейросеть раскрашивания черно-белых фотографий позволяет работать с ним абсолютно бесплатно, без ограничений на число загрузок и даже не требует регистрации для скачивания итоговых изображений.
Это по-настоящему бесценный подарок всем любителям истории и увлекающимся фотографией!
Автор статьи: Сергей Сандаков, 39 лет.
Программист, веб-мастер, опытный пользователь ПК и Интернет.
Как сделать цветное фото из черно-белого в Фотошопе
Большинство фотографий из прошлого лишены цветов, другими словами, они являются черно-белыми. Также, иногда современные фотографы в силу творческой или иной задумки делают выбор в пользу таких снимков. Но что делать, если захотелось их раскрасить? В этом статье мы расскажем, как это сделать в графическом редакторе Photoshop.
Раскрашиваем фото
Итак, чтобы выполнить поставленную задачу, придерживаемся следующего алгоритма действий:
- Открываем исходную фотографию в Фотошопе.
- Создаем новый слой, нажав соответствующую кнопку в Палитре.
- Чтобы раскрасить снимок, мы будем использовать режим наложения для слоев – “Цветность”. Выбрать его можно, щелкнув по текущему варианту.В открывшемся списке находим нужный пункт и кликаем по нему.С помощью данного режима мы можем раскрашивать объекты, не боясь за сохранность теней и других составляющих исходной фотографии.
- Далее нужно выбрать объект (в нашем случае – это кружка) и цвет, который мы будем использовать для его раскраски. Задать цвет можно, либо на свое усмотрение, либо, взять пробу с помощью инструмента “Пипетка” с похожих снимков. Мы выбираем первый вариант.
- Щелкаем по основному цвету на панели инструментов.
- Выбираем нужный вариант и подтверждаем нажатием кнопки OK.
- Выбираем инструмент “Кисть”.
- В параметрах кисти выставляем: форма – жесткая круглая, непрозрачность – 100%, нажим – 100%, жесткость – 100%.
- Выбрав оптимальный размер кисти (и периодически меняя его) приступаем к раскрашиванию кружки. Чтобы было удобнее, можно увеличить масштаб изображения до комфортных размеров.
- Получаем следующий результат.Примечание: Для каждого цвета нужно создавать отдельный слой и выбирать для него соответствующий режим наложения. Мы в рамках статьи ограничимся одним.
- Нажимаем на кнопку добавления нового корректирующего слоя в Палитре (при этом должен быть выбран слой, для которого мы хотим выполнить данное действие). В раскрывшемся списке выбираем пункт “Цветовой тон/насыщенность”.
- В появившихся настройках жмем кнопку, которая выделена на рисунке ниже.Это позволит привязать корректирующий слой только к слою, находящемуся сразу под ним. Остальные слои в палитре данная настройка затрагивать не будет. Как раз по этой причине, если требуется использовать несколько цветов для раскраски, для каждого из них нужно создавать новый слой, о чем мы упомянули чуть выше.
- Перейдем к настройке цвета и оттенка. Напротив опции “Тонирование” ставим галочку. Затем, двигая ползунки “Цветовой тон” и “Насыщенность”, можем получить результат, который нас устроит больше всего.
- Все готово. Мы раскрасили кружку с учетом цвета нашего логотипа.Можно и дальше продолжить работу над фотографией. Мы же на это остановимся, так как хотели лишь продемонстрировать принцип работы в данном направлении.
Заключение
Раскрашивание черно-белых фотографий в Фотошопе – достаточно простое занятие, если соблюдать очередность шагов. Основная сложность заключается в аккуратной работе кистью во время раскраски, на что, к тому же, требуется немало времени. Но результат оправдает все затраченные усилия.
Загрузка…Как сделать в Photoshop черно-белую фотографию, кроме одного цвета.
, Александра Бейтман 26 июля 2020 г.
Хотите сделать изображение черно-белым, кроме одного цвета? Вы можете добавить драматизма своим фотографиям, обесцветив все цвета, кроме одного. Эта техника, известная как Color Splash, гарантирует, что один цвет действительно выделяется на приглушенном фоне!
В этой статье мы покажем вам, как сделать в Photoshop черно-белую фотографию, кроме одного цвета. Технику Color Splash легко освоить, и вы можете использовать ее на различных изображениях в своей галерее.
Если у вас его еще нет, вы можете загрузить Photoshop с сайта Adobe здесь.
Создание черно-белой фотографии, кроме одного цвета
После того, как вы установили и обновили Photoshop, мы готовы приступить к работе.
Теперь импортируйте изображение в Photoshop. Я буду работать с этим изображением, любезно предоставлено Unsplash:
Фото Бенс Хорваи через UnsplashШаг 1: Дублировать слой
Щелкните правой кнопкой мыши на слое Background на панели «Слои» с правой стороны вашего Экран Photoshop.Затем выберите опцию Duplicate Layer .
Появится диалоговое окно с просьбой дать имя новому слою. Имя по умолчанию для этого слоя в Photoshop, вероятно, будет Background copy , но я считаю, что его проще переименовать для организационных целей. Я назову свой дублированный слой Layer 1.
Дублирование фонового слоя позволяет нам завершить редактирование на двух отдельных слоях. Хотя вначале это может показаться более сложным или требует дополнительной работы, вы поймете, почему работа над двумя слоями немного упрощает нашу работу.
Шаг 2: Обесцветить изображение
Затем снова выберите фоновый слой и нажмите Shift + Cmd + U на Mac или Ctrl + Shift + U в Windows, чтобы обесцветить все цвета в вашем изображении.
Обратите внимание, что Layer 1 находится над фоновым слоем на панели Layers. Чтобы увидеть эффекты обесцвечивания, щелкните значок глаза слева от Layer 1 на панели. Переключение значка глаза скрывает и открывает этот слой.
Шаг 3. Выберите цвет акцента
Затем щелкните значок глаза, чтобы снова сделать Layer 1 видимым, и выберите его на панели «Слои».
Затем перейдите к Select »Color Range в верхней строке меню в Photoshop.
Здесь вы можете выбрать цвет акцента. В этом уроке я выберу цвет акцента синим. Итак, цель в конце этой статьи — получить изображение с полной ненасыщенностью, за исключением голубой воды на фотографии.
В диалоговом окне «Цветовой диапазон» выберите инструмент «Пипетка » со знаком «плюс». Этот инструмент называется « Добавить к образцу », и он поможет нам выделить всех синих тонов на фотографии.
Используя инструмент «Добавить к образцу», щелкните выделенный цвет на изображении. Здесь я нажимаю на голубую воду в нескольких точках изображения. Выбор нескольких точек позволяет мне добавить несколько оттенков синего к образцу. Чем больше оттенков я сниму с помощью инструмента «Добавить в образец», тем точнее будет мой эффект.
После того, как вы выбрали цвет акцента в нескольких точках изображения, нажмите кнопку OK , чтобы создать выделение на фотографии.
Шаг 4. Инвертируйте выделение
Затем нажмите Shift + Command + U на Mac или Ctrl + Shift + I в Windows, чтобы инвертировать только что сделанный выбор. Теперь Photoshop выбрал все ваше изображение, за исключением цвета, который вы хотите сохранить.
Продолжайте и нажмите кнопку Удалить на клавиатуре, чтобы удалить выделенную область из слоя 1 .Теперь ваша фотография будет черно-белой, кроме одного цвета!
Мы можем удалить часть верхнего слоя, чтобы показать нижний ненасыщенный слой, потому что мы использовали два слоя для создания нашего эффекта. Довольно хитро!
Вы можете нажать Ctrl + D , чтобы удалить выделение из изображения, если ваши марширующие муравьи все еще остаются на экране.
Шаг 5: Подкрасьте изображение
Если инструмент «Добавить к выделению» не исключил полностью все другие цвета из изображения, используйте инструмент «Ластик » , чтобы смахнуть все нежелательные оттенки.
Теперь у вас есть идеальное изображение! Вот до и после нашего образца изображения, созданного путем создания черно-белой фотографии, кроме одного цвета в Photoshop:
Вот и все!
Мы надеемся, что эта статья помогла вам научиться делать в Photoshop черно-белые фотографии, кроме одного цвета. Теперь вы можете применить эту технику Color Splash к любой из ваших ярких фотографий.
Предпочитаете работать в Lightroom? Посмотрите этот урок, чтобы добиться того же эффекта в Adobe Lightroom.
Единственное, в чем сейчас нуждается ваш рок-образ, — это место для демонстрации! И что может быть лучше для этого, чем ваш сайт с фотографиями? Если вы хотите создать потрясающие галереи и ускорить работу своего сайта на WordPress, вам стоит заглянуть в Envira Gallery.
Этот замечательный плагин позволяет создавать потрясающие, настраиваемые и адаптивные галереи WordPress одним нажатием кнопки. Загрузите демо-версию Envira Gallery и создайте свою первую галерею уже сегодня.
Не знаете, как добиться более крутых эффектов с помощью Adobe Lightroom и Photoshop? Обязательно ознакомьтесь с нашими самыми популярными статьями по фотографии и демонстрациями ниже:
Вы также можете ознакомиться с другими нашими руководствами по Photoshop:
Не забудьте подписаться на нашу рассылку, чтобы получить больше советов и уловок, и подписывайтесь на нас в Facebook и Twitter, где вы найдете еще больше бесплатных руководств по редактированию фотографий.
Используете WordPress и хотите получить Envira Gallery бесплатно?
Envira Gallery помогает фотографам всего за несколько кликов создавать красивые фото- и видеогалереи, чтобы они могли продемонстрировать и продать свои работы.
.Раскрашивание черно-белых изображений с помощью OpenCV и Deep Learning
Щелкните здесь, чтобы загрузить исходный код этого сообщения
В этом руководстве вы узнаете, как раскрашивать черно-белые изображения с помощью OpenCV, Deep Learning и Python.
Раскрашивание изображения — это процесс получения входного изображения в градациях серого (черно-белого) и последующего создания выходного цветного изображения , представляющего семантические цвета и тона входных данных (например, океан в ясный солнечный день должен быть правдоподобно «синим» — модель не может окрашивать его в «ярко-розовый»).
Предыдущие методы раскрашивания изображения:
- С учетом значительного человеческого взаимодействия и аннотации
- Произведено ненасыщенное окрашивание
Новый подход, который мы собираемся использовать здесь сегодня, основан на глубоком обучении. Мы будем использовать сверточную нейронную сеть, способную раскрашивать черно-белые изображения с результатами, которые могут «обмануть» людей!
Чтобы узнать, как выполнять окрашивание черно-белых изображений с помощью OpenCV, просто продолжайте читать!
Раскрашивание черно-белого изображения с помощью OpenCV и Deep Learning
В первой части этого руководства мы обсудим, как можно использовать глубокое обучение для раскрашивания черно-белых изображений.
Оттуда мы будем использовать OpenCV для раскрашивания черно-белых изображений для обоих:
- Изображения
- Видеопотоки
Затем мы рассмотрим несколько примеров и демонстраций нашей работы.
Как раскрасить черно-белые изображения с помощью глубокого обучения?
Рисунок 1: Архитектура Zhang и др. Для раскрашивания черно-белых изображений с помощью глубокого обучения.Техника, которую мы здесь рассмотрим сегодня, взята из Zhang et al.Бумага ECCV, 2016, цветное изображение , цветное изображение .
Предыдущие подходы к раскрашиванию черно-белых изображений основывались на ручных аннотациях человека и часто давали ненасыщенные результаты, которые не были «правдоподобными» как истинные раскраски.
Zhang et al. решили атаковать проблему раскрашивания изображения, используя сверточные нейронные сети, чтобы «галлюцинировать», как будет выглядеть входное изображение в градациях серого после раскрашивания.
Для обучения сети Zhang et al.начал с набора данных ImageNet и преобразовал все изображения из цветового пространства RGB в цветовое пространство Lab.
Подобно цветовому пространству RGB, цветовое пространство Lab имеет три канала . Но , в отличие от для цветового пространства RGB, Lab по-другому кодирует информацию о цвете:
- Канал L кодирует только яркость
- канал кодирует зеленый-красный.
- И b канал кодирует сине-желтый
Полный обзор цветового пространства Lab выходит за рамки этого поста (см. Это руководство для получения дополнительной информации о Lab), но суть здесь в том, что Lab лучше отображает то, как люди видят цвет.
Так как канал L кодирует только интенсивность, мы можем использовать канал L в качестве входа шкалы серого в сеть.
Отсюда сеть должна научиться предсказывать каналы a и b . Учитывая входных L каналов и предсказанных ab каналов , мы можем затем сформировать наше окончательное выходное изображение .
Весь (упрощенный) процесс можно резюмировать как:
- Преобразует все обучающие изображения из цветового пространства RGB в цветовое пространство Lab.
- Используйте канал L в качестве входа в сеть и обучите сеть предсказывать каналы ab .
- Объедините входной L канал с прогнозируемыми ab каналами.
- Преобразуйте изображение Lab обратно в RGB.
Для получения более правдоподобных раскрасок черно-белого изображения авторы также используют несколько дополнительных методов, включая средний отжиг и специализированную функцию потерь для изменения баланса цвета (оба из которых выходят за рамки этой публикации).
Для получения более подробной информации об алгоритме раскраски изображения и модели глубокого обучения, обязательно обратитесь к официальной публикации Zhang et al.
Структура проекта
Скачайте исходный код, модель и примеры изображений, используя раздел «Загрузки» этой публикации.
После того, как вы распаковали zip-архив, вы должны перейти в каталог проекта.
Оттуда давайте воспользуемся командой tree
для проверки структуры проекта:
$ tree --dirsfirst ,├── изображения │ ├── adrian_and_janie.png │ ├── albert_einstein.jpg │ ├── mark_twain.jpg │ └── robin_williams.jpg ├── модель │ ├── colorization_deploy_v2.prototxt │ ├── colorization_release_v2.caffemodel │ └── pts_in_hull.npy ├── bw2color_image.py └── bw2color_video.py 2 каталога, 9 файлов
У нас есть четыре образца черно-белых изображений в каталоге изображений /
.
Наша модель Caffe и prototxt находятся внутри каталога model /
вместе с файлом NumPy точек кластера.
Сегодня мы рассмотрим два скрипта:
-
bw2color_image.py
-
bw2color_video.py
Скрипт image может обрабатывать любое черно-белое изображение (также известное как оттенки серого), которое вы передаете.
Наш сценарий video либо использует вашу веб-камеру, либо принимает исходный видеофайл, а затем выполняет раскрашивание.
Раскрашивание черно-белых изображений с помощью OpenCV
Давайте продолжим и реализуем скрипт раскрашивания черно-белого изображения с помощью OpenCV.
Откройте файл bw2color_image.py
и вставьте следующий код:
# импортируем необходимые пакеты импортировать numpy как np import argparse импорт cv2 # создать парсер аргументов и проанализировать аргументы ap = argparse.ArgumentParser () ap.add_argument ("- i", "--image", type = str, required = True, help = "путь для ввода черно-белого изображения") ap.add_argument ("- p", "--prototxt", type = str, required = True, help = "путь к файлу протокола Caffe") ап.add_argument ("- m", "--model", type = str, required = True, help = "путь к предварительно обученной модели Caffe") ap.add_argument ("- c", "--points", type = str, required = True, help = "путь к центральным точкам кластера") args = vars (ap.parse_args ())
Нашему сценарию раскраски требуется только три импорта: NumPy, OpenCV и argparse
.
Давайте продолжим и воспользуемся argparse
для анализа аргументов командной строки. Этот сценарий требует, чтобы эти четыре аргумента были переданы сценарию непосредственно из терминала:
-
--image
: Путь к нашему входному черно-белому изображению. -
--prototxt
: Наш путь к файлу prototxt Caffe. -
- модель
. Наш путь к предварительно обученной модели Caffe. -
--points
: путь к файлу точек центра кластера NumPy.
С указанными выше четырьмя флагами и соответствующими аргументами сценарий сможет работать с разными входными данными без изменения кода.
Давайте загрузим нашу модель и центры кластеров в память:
# загружаем сериализованную модель черно-белого колоризатора и кластер # центральные точки от диска print ("[INFO] модель загрузки... ") net = cv2.dnn.readNetFromCaffe (args ["prototxt"], args ["модель"]) pts = np.load (args ["очки"]) # добавляем в модель центры кластеров как свертки 1x1 class8 = net.getLayerId ("class8_ab") conv8 = net.getLayerId ("conv8_313_rh") pts = pts.transpose (). reshape (2, 313, 1, 1) net.getLayer (class8) .blobs = [pts.astype ("float32")] net.getLayer (conv8) .blobs = [np.full ([1, 313], 2.606, dtype = "float32")]
Строка 21 загружает нашу модель Caffe непосредственно из значений аргументов командной строки.OpenCV может читать модели Caffe через функцию cv2.dnn.readNetFromCaffe
.
Строка 22 затем загружает центральные точки кластера непосредственно из пути аргумента командной строки в файл точек. Этот файл имеет формат NumPy, поэтому мы используем np.load
.
Отсюда, Строки 25-29 :
- Центры нагрузки для ab канал квантования, используемого для перебалансировки.
- Обработайте каждую точку как 1 × 1 сверток и добавьте их в модель.
Теперь загрузим, масштабируем и преобразуем наше изображение:
# загружаем входное изображение с диска, масштабируем яркость пикселей до # range [0, 1], а затем преобразовать изображение из BGR в цвет Lab # пространство image = cv2.imread (args ["изображение"]) scaled = image.astype ("float32") / 255,0 lab = cv2.cvtColor (масштабированное, cv2.COLOR_BGR2LAB)
Чтобы загрузить наше входное изображение из пути к файлу, мы используем cv2.imread
в строке , строка 34 .
Этапы предварительной обработки включают:
- Масштабирование интенсивностей пикселей до диапазона [0, 1] (, строка 35, ).
- Преобразование из BGR в цветовое пространство Lab (, строка 36, ).
Продолжим предварительную обработку:
# изменяем размер изображения Lab до 224x224 (размеры цветности # сеть принимает), разделите каналы, извлеките канал L, а затем # выполнить среднее центрирование resized = cv2.resize (lab, (224, 224)) L = cv2.split (размер изменен) [0] L - = 50
Мы продолжим и изменим размер входного изображения до 22 4 × 2 24 ( Line 41 ), необходимых входных размеров для сети.
Затем мы берем только канал L
(т.е. ввод) и выполняем вычитание среднего (, строки 42 и 43, ).
Теперь мы можем передать вход L канал через сеть в , чтобы предсказать каналы ab :
# пропустить L-канал через сеть, который * предсказывает * 'a' Значения каналов # и 'b' 'print ("[ИНФОРМАЦИЯ] раскрашивание изображения ...")' net.setInput (cv2.dnn.blobFromImage (L)) ab = net.forward () [0,:,:,:]. transpose ((1, 2, 0)) # изменить размер прогнозируемого объема 'ab' до тех же размеров, что и наш # входное изображение ab = cv2.resize (ab, (image.shape [1], image.shape [0]))
Прямой проход канала L
через сеть происходит на строках 48 и 49 (вот обновленная информация о blobFromImage OpenCV , если она вам нужна).
Обратите внимание, что после того, как мы вызвали net.forward
в той же строке, мы пошли дальше и извлекли прогнозируемый объем ab
.Я стараюсь сделать это легко, но со ссылкой на Zhang et al. документация и демонстрация на GitHub, если вам нужны подробности.
Оттуда мы изменяем размер прогнозируемого объема ab
до тех же размеров, что и наше входное изображение (, строка 53, ).
Теперь пришло время постобработки. Оставайтесь со мной здесь, поскольку мы, по сути, идем в обратном направлении для некоторых из наших предыдущих шагов:
# взять канал 'L' из * исходного * входного изображения (не # изменил размер одного) и объедините исходный канал L с # прогнозируемых канала 'ab' L = cv2.сплит (лаборатория) [0] colorized = np.concatenate ((L [:,:, np.newaxis], ab), axis = 2) # преобразовать выходное изображение из цветового пространства Lab в RGB, затем # обрезать любые значения, выходящие за пределы диапазона [0, 1] colorized = cv2.cvtColor (раскрашенный, cv2.COLOR_LAB2BGR) colorized = np.clip (раскрашенный, 0, 1) # текущее раскрашенное изображение представлено как плавающая точка # тип данных в диапазоне [0, 1] - конвертируем в беззнаковый # 8-битное целочисленное представление в диапазоне [0, 255] раскрашено = (255 * раскрашено).astype ( "uint8") # показать исходные и выходные цветные изображения cv2.imshow ("Исходный", изображение) cv2.imshow ("Раскрашенный", раскрашенный) cv2.waitKey (0)
Постобработка включает:
- Захват канала
L
из исходного изображения ( Строка 58 ) и конкатенация исходногоL
канала и предсказанного каналаab
вместе, формируяраскрашенный
( Строка 59 ). - Преобразование цветного изображения
- Отсечение любой интенсивности пикселей, выходящей за пределы диапазона [0, 1] (, строка 64, ).
- Возвращение интенсивности пикселей в диапазон [0, 255] (, строка 69, ). На этапах предварительной обработки (, строка 35, ) мы разделили на
255
и теперь умножаем на255
. Я также обнаружил, что это масштабирование и преобразование"uint8"
не является обязательным, но помогает коду работать между OpenCV 3.Версии 4.x и 4.x .
Наконец, на экране отображаются как наше исходное изображение
, так и раскрашенное изображение
!
Результат раскрашивания изображения
Теперь, когда мы реализовали наш скрипт раскраски изображения, давайте попробуем.
Убедитесь, что вы использовали раздел «Загрузки» этого сообщения в блоге, чтобы загрузить исходный код, модель раскраски и примеры изображений.
Оттуда откройте терминал, перейдите туда, где вы загрузили исходный код, и выполните следующую команду:
$ python bw2color_image.ру \ --prototxt модель / colorization_deploy_v2.prototxt \ --model model / colorization_release_v2.caffemodel \ --points model / pts_in_hull.npy \ --image images / robin_williams.jpg [INFO] загрузка модели ...Рисунок 2: Раскрашивание изображения в оттенках серого с помощью OpenCV и глубокого обучения. Это картина известного ныне покойного актера Робина Уильямса.
На слева вы можете увидеть исходное входное изображение Робина Уильямса, известного актера и комика, который скончался ~ 5 лет назад.
Справа , вы можете увидеть результат черно-белой модели раскрашивания.
Давайте попробуем другое изображение, это Альберта Эйнштейна:
$ python bw2color_image.py \ --prototxt модель / colorization_deploy_v2.prototxt \ --model model / colorization_release_v2.caffemodel \ --points model / pts_in_hull.npy \ --image images / albert_einstein.jpg [INFO] загрузка модели ...Рисунок 3: Раскрашивание изображения с использованием глубокого обучения и OpenCV.Это изображение Альберта Эйнштейна.
Меня особенно впечатлила эта раскраска изображения.
Обратите внимание, вода имеет подходящий оттенок синего, тогда как рубашка Эйнштейна белая, а штаны цвета хаки - все это правдоподобные расцветки.
Вот еще один пример изображения, на этом фото Марка Твена, одного из моих самых любимых авторов:
$ python bw2color_image.py \ --prototxt модель / colorization_deploy_v2.prototxt \ --model model / colorization_release_v2.caffemodel \ --points model / pts_in_hull.npy --image images / mark_twain.jpg [INFO] загрузка модели ...Рисунок 4: Черно-белое изображение Марка Твена было раскрашено с помощью OpenCV и глубокого обучения.
Здесь мы видим, что трава и листва правильно окрашены в оттенок зеленого, хотя вы можете видеть, как эти оттенки зеленого смешиваются с туфлями и руками Твена.
Окончательное изображение демонстрирует не очень хорошую раскрашивание черно-белого изображения с помощью OpenCV:
$ python bw2color_image.ру \ --prototxt модель / colorization_deploy_v2.prototxt \ --model model / colorization_release_v2.caffemodel \ --points model / pts_in_hull.npy --image images / adrian_and_janie.png [INFO] загрузка модели ...Рисунок 5: Джени - щенки, которых мы недавно взяли в нашу семью. Это ее первый снежный день. Черно-белые камеры / изображения отлично подходят для снега, но я хотел увидеть, как получится раскрашивание изображения с OpenCV и глубоким обучением.
На этой фотографии я и Джени, мой щенок породы бигль, были во время снежной бури несколько недель назад.
Здесь вы можете видеть, что, хотя снег, Джени, моя куртка и даже беседка на заднем плане окрашены правильно, мои синие джинсы на самом деле красные.
Не все цвета изображения будут идеальными, но результаты, представленные здесь сегодня, действительно демонстрируют правдоподобие Zhang et al. подходить.
Раскрашивание черно-белого видео в реальном времени с помощью OpenCV
Мы уже видели, как можно применить раскрашивание черно-белого изображения к изображениям - но можем ли мы сделать то же самое с видеопотоками?
Вы уверены, что можем.
Этот сценарий следует тому же процессу, что и выше, за исключением того, что мы будем обрабатывать кадры видеопотока. Я буду рассматривать его менее подробно и сосредоточусь на аспектах захвата кадра и обработки.
Откройте bw2color_video.py
и вставьте следующий код:
# импортируем необходимые пакеты из imutils.video импорт VideoStream импортировать numpy как np import argparse импорт imutils время импорта импорт cv2 # создать парсер аргументов и проанализировать аргументы ap = argparse.ArgumentParser () ap.add_argument ("- i", "--input", type = str, help = "путь к дополнительному входному видео (в противном случае будет использоваться веб-камера)") ap.add_argument ("- p", "--prototxt", type = str, required = True, help = "путь к файлу протокола Caffe") ap.add_argument ("- m", "--model", type = str, required = True, help = "путь к предварительно обученной модели Caffe") ap.add_argument ("- c", "--points", type = str, required = True, help = "путь к центральным точкам кластера") ap.add_argument ("- w", "--width", type = int, по умолчанию = 500, help = "введите ширину рамки") args = vars (ap.parse_args ())
Для нашего сценария видео требуется два дополнительных импорта:
-
VideoStream
позволяет нам захватывать кадры с веб-камеры или видеофайла -
время
будет использовано для паузы, чтобы позволить веб-камере прогреться
Давайте инициализируем наш VideoStream
сейчас:
# инициализируем логическое значение, используемое, чтобы указать, веб-камера или вход # видео используется webcam = not args.get ("input"; False) # если путь к видео не был указан, возьмите ссылку на веб-камеру если веб-камера: print ("[INFO] запускает видеопоток... ") vs = VideoStream (src = 0) .start () time.sleep (2.0) # в противном случае получить ссылку на видео файл еще: print ("[ИНФОРМАЦИЯ] открытие видеофайла ...") vs = cv2.VideoCapture (args ["ввод"])
В зависимости от того, работаем ли мы с веб-камерой ,
или видеофайлом, мы создадим здесь наш объект vs
(то есть «видеопоток»).
Оттуда мы загрузим модель глубокого обучения Colorizer и центры кластеров (так же, как мы делали в нашем предыдущем скрипте):
# загружаем сериализованную модель черно-белого колоризатора и кластер # центральные точки от диска print ("[INFO] модель загрузки... ") net = cv2.dnn.readNetFromCaffe (args ["prototxt"], args ["модель"]) pts = np.load (args ["очки"]) # добавляем в модель центры кластеров как свертки 1x1 class8 = net.getLayerId ("class8_ab") conv8 = net.getLayerId ("conv8_313_rh") pts = pts.transpose (). reshape (2, 313, 1, 1) net.getLayer (class8) .blobs = [pts.astype ("float32")] net.getLayer (conv8) .blobs = [np.full ([1, 313], 2.606, dtype = "float32")]
Теперь мы запустим бесконечный цикл и
по входящим кадрам.Обработаем кадры прямо в петле:
# перебирать кадры из видеопотока в то время как True: # взять следующий кадр и обработать, если мы читаем из любого # VideoCapture или VideoStream frame = vs.read () frame = frame, если веб-камера else frame [1] # если мы просматриваем видео и не захватили кадр, то мы # достигли конца видео если нет веб-камеры и рамки нет: перерыв # изменить размер входного кадра, масштабировать яркость пикселей до # range [0, 1], а затем преобразовать кадр из BGR в Lab # цветовое пространство frame = imutils.resize (frame, width = args ["width"]) scaled = frame.astype ("float32") / 255,0 lab = cv2.cvtColor (масштабированное, cv2.COLOR_BGR2LAB) # изменяем размер рамки Lab до 224x224 (размеры цветности # сеть принимает), разделить каналы, извлечь L-канал и # затем выполнить среднее центрирование resized = cv2.resize (lab, (224, 224)) L = cv2.split (размер изменен) [0] L - = 50
Каждый кадр из vs
захватывается в строках 55 и 56 .Выполняется проверка для None
type frame
- когда это происходит, мы достигли конца видеофайла (если мы обрабатываем видеофайл), и мы можем прервать
из цикла ( строк 60 и 61 ).
Предварительная обработка (как и раньше) проводится на строках 66-75 . Здесь мы изменяем размер, масштабируем и конвертируем в Lab. Затем мы берем канал L
и выполняем вычитание среднего.
Теперь применим раскраску с глубоким обучением и обработаем результат:
# пропустить L-канал через сеть, который * предсказывает * # Значения каналов 'a' и 'b' сеть.setInput (cv2.dnn.blobFromImage (L)) ab = net.forward () [0,:,:,:]. transpose ((1, 2, 0)) # изменить размер прогнозируемого объема 'ab' до тех же размеров, что и наш # кадр ввода, затем возьмите канал L из * исходного * входа # кадра (не измененного размера) и объединить исходный 'L' # канал с предсказанными каналами 'ab' ab = cv2.resize (ab, (frame.shape [1], frame.shape [0])) L = cv2.split (lab) [0] colorized = np.concatenate ((L [:,:, np.newaxis], ab), axis = 2) # преобразовать выходной кадр из цветового пространства Lab в RGB, вырезать # любые значения, выходящие за пределы диапазона [0, 1], а затем преобразовать # в 8-битовое целое число без знака (диапазон [0, 255]) цветное = cv2.cvtColor (раскрашенный, cv2.COLOR_LAB2BGR) colorized = np.clip (раскрашенный, 0, 1) colorized = (255 * colorized) .astype ("uint8")
Наш прямой проход глубокого обучения L
по сети приводит к предсказанному каналу ab
.
Затем мы обработаем результат до нашего цветного изображения
( строк 86-95 ). Здесь мы изменяем размер, берем наш оригинал L
и объединяем наши предсказанные ab
.Оттуда мы конвертируем из Lab в RGB, отсекаем и масштабируем.
Если вы внимательно следили за приведенным выше, вы помните, что все, что мы делаем дальше, это отображаем результаты:
# показать оригинальные и окончательные раскрашенные рамки cv2.imshow ("Оригинал", рамка) cv2.imshow ("Оттенки серого", cv2.cvtColor (frame, cv2.COLOR_BGR2GRAY)) cv2.imshow ("Раскрашенный", раскрашенный) ключ = cv2.waitKey (1) & 0xFF # если была нажата клавиша `q`, выйти из цикла если ключ == ord ("q"): перерыв # если мы используем веб-камеру, остановите видеопоток камеры если веб-камера: противстоп() # в противном случае отпустить указатель видеофайла еще: vs.release () # закрыть все открытые окна cv2.destroyAllWindows ()
Наша исходная веб-камера , кадр
показан вместе с нашим изображением в градациях серого и результатом в цвете.
Если нажата клавиша "q"
, прервет
из цикла и очистит.
Вот и все!
Результаты раскрашивания видео
Давайте продолжим и попробуем наш сценарий раскрашивания черно-белого видео.
Убедитесь, что вы используете раздел «Загрузки» данного руководства, чтобы загрузить исходный код и модель раскраски.
Оттуда откройте терминал и выполните следующую команду, чтобы запустить колоризер на вашей веб-камере:
$ python bw2color_video.py \ --prototxt модель / colorization_deploy_v2.prototxt \ --model model / colorization_release_v2.caffemodel \ --points model / pts_in_hull.npyРисунок 6: Раскрашивание черно-белого изображения в видео с помощью OpenCV и демонстрации глубокого обучения.
Если вы хотите запустить колоризер для видеофайла, вы можете использовать следующую команду:
$ python bw2color_video.py \ --prototxt модель / colorization_deploy_v2.prototxt \ --model model / colorization_release_v2.caffemodel \ --points model / pts_in_hull.npy --input video / jurassic_park_intro.mp4
Кредиты:
Модель здесь работает почти в реальном времени на моем Intel Xeon W.
3 ГГц.Конечно, с помощью графического процессора можно добиться производительности в реальном времени; однако имейте в виду, что поддержка графическим процессором модуля «dnn» OpenCV в настоящее время немного ограничена, и он, к сожалению, еще не поддерживает графические процессоры NVIDIA.
Сводка
В сегодняшнем руководстве вы узнали, как раскрашивать черно-белые изображения с помощью OpenCV и глубокого обучения.
Модель раскраски изображения, которую мы здесь использовали сегодня, была впервые представлена Zhang et al. в своей публикации 2016 года: Colorful Image Colorization .
Используя эту модель, мы смогли раскрасить оба цвета:
- Черно-белые изображения
- Черно-белое видео
Наши результаты, хотя и не идеальные, продемонстрировали правдоподобность автоматического раскрашивания черно-белых изображений и видео.
Согласно Чжан и др., Их подход был способен «обмануть» людей в 32% случаев!
Чтобы загрузить исходный код этого сообщения и получать уведомления о публикации будущих руководств на PyImageSearch, просто введите свой адрес электронной почты в форму ниже!
Загрузите исходный код и БЕСПЛАТНОЕ 17-страничное руководство по ресурсам
Введите свой адрес электронной почты ниже, чтобы получить ZIP-архив кода и БЕСПЛАТНОЕ 17-страничное руководство по компьютерному зрению, OpenCV и глубокому обучению . Внутри вы найдете мои тщательно отобранные учебники, книги, курсы и библиотеки, которые помогут вам освоить CV и DL!
,Преобразование изображения в черно-белое - techtutorialsx
В этом руководстве мы узнаем, как преобразовать изображение в черно-белое, используя Python и OpenCV.
Введение
В этом руководстве мы узнаем, как преобразовать изображение в черно-белое, используя Python и OpenCV.
Преобразование изображения в черно-белое с помощью OpenCV можно выполнить с помощью простой бинарной операции определения порога. Начнем с серого изображения и определим пороговое значение.
Затем для каждого пикселя изображения в градациях серого, если его значение меньше порога, мы присваиваем ему значение 0 (черный). В противном случае присваиваем ему значение 255 (белый).
Обратите внимание, что это очень простой подход, который может не дать наилучших результатов, если, например, изображение имеет разные условия освещения в разных областях [1]. Вы можете прочитать здесь о более сложных операциях, которые мы можем выполнять в OpenCV для получения лучших результатов.
Это руководство было протестировано в Windows 8.1 с версией 4.0.0 OpenCV. Используемая версия Python - 3.7.2.
Код
Первое, что нам нужно сделать, это импортировать модуль cv2 , чтобы у нас был доступ ко всем функциям, которые позволят нам преобразовать изображение в черно-белое.
импорт cv2
Затем нам нужно будет получить изображение, которое мы хотим преобразовать. Итак, чтобы прочитать изображение из файловой системы, нам просто нужно вызвать функцию imread , передав в качестве входных данных путь к файлу, который мы хотим прочитать.
Обратите внимание, что изображение будет прочитано как numpy ndarray.
originalImage = cv2.imread ('C: /Users/N/Desktop/Test.jpg')
Чтобы мы могли применить операцию определения порога, изображение должно быть в градациях серого [2], как уже упоминалось во вводном разделе.
Таким образом, после прочтения изображения мы преобразуем его в шкалу серого с помощью вызова функции cvtColor . Подробное объяснение того, как преобразовать изображение в оттенки серого с помощью OpenCV, можно найти здесь.
Итак, в качестве первого ввода cvtColor мы передадим исходное изображение. В качестве второго входа нам нужно передать код преобразования цветового пространства.
Поскольку OpenCV использует цветовое пространство BGR при чтении изображения, нам нужно использовать код преобразования COLOR_BGR2GRAY . Интересное объяснение того, почему OpenCV использует формат BGR , можно найти здесь.
В качестве вывода функция cvtColor вернет изображение в серой шкале.
grayImage = cv2.cvtColor (originalImage, cv2.COLOR_BGR2GRAY)
Теперь, чтобы преобразовать наше изображение в черно-белое, мы применим операцию пороговой обработки. Для этого нам нужно вызвать пороговую функцию модуля cv2 .
В этом уроке мы собираемся применить простейший подход к пороговой обработке, которым является бинарное пороговое значение. Однако обратите внимание, что OpenCV предлагает больше типов пороговых значений, как можно увидеть здесь.
Как уже упоминалось, алгоритм установления порогового значения для двоичного кода соответствует следующему: для каждого пикселя изображения, если значение пикселя меньше заданного порогового значения, оно устанавливается равным нулю.В противном случае устанавливается значение, определенное пользователем [3].
Обратите внимание: поскольку мы работаем с изображением в градациях серого, значения пикселей варьируются от 0 до 255. Кроме того, поскольку мы хотим преобразовать изображение в черно-белое, когда пиксель превышает пороговое значение, значение, которое мы хотим его нужно преобразовать - 255.
Естественно, функция threshold позволяет нам указать эти параметры. Итак, первый вход функции - это изображение в градациях серого, к которому мы хотим применить операцию.
В качестве второго входа он получает значение порога. Мы будем рассматривать значение 127 , которое находится в середине шкалы значений, которые может принимать пиксель в серой шкале (от 0 до 255).
В качестве третьего входа функция получает заданное пользователем значение, в которое должен быть преобразован пиксель, если его значение превышает пороговое значение. Мы будем использовать значение 255, что соответствует белому цвету. Напомним, что мы хотим преобразовать изображение в черно-белое, что означает, что в конце нам нужно изображение, имеющее пиксели со значением 0 или 255.
В качестве четвертого входа функция получает константу, указывающую тип применяемого холдинга. Как уже упоминалось, мы собираемся использовать двоичный порог, поэтому мы передаем значение THRESH_BINARY .
В качестве вывода этот вызов функции вернет кортеж. Первое значение можно игнорировать, поскольку оно актуально только для более сложных методов определения порога. Второе возвращаемое значение соответствует результирующему изображению после применения операции.
(порог, blackAndWhiteImage) = cv2.порог (grayImage, 127, 255, cv2.THRESH_BINARY)
После этого мы покажем черно-белое изображение в окне, вызвав функцию imshow .
cv2.imshow ('Черно-белое изображение', blackAndWhiteImage)
Для сравнения создадим еще два окна для отображения исходного изображения и версии в градациях серого.
cv2.imshow ('Исходное изображение', originalImage) cv2.imshow ('Серое изображение', grayImage)
В завершение мы вызовем функцию waitKey со значением 0, чтобы она блокировалась на неопределенное время, ожидая нажатия клавиши.Итак, пока пользователь не нажмет клавишу, будут отображаться окна с изображениями.
После того, как пользователь нажмет клавишу, функция вернется и разблокирует выполнение. Затем мы вызовем функцию destroyAllWindows , чтобы уничтожить ранее созданные окна.
cv2.waitKey (0) cv2.destroyAllWindows ()
Окончательный код можно увидеть ниже.
импорт cv2 originalImage = cv2.imread ('C: /Users/N/Desktop/Test.jpg') grayImage = cv2.cvtColor (originalImage, cv2.COLOR_BGR2GRAY) (порог, blackAndWhiteImage) = cv2.threshold (grayImage, 127, 255, cv2.THRESH_BINARY) cv2.imshow ('Черно-белое изображение', blackAndWhiteImage) cv2.imshow ('Исходное изображение', originalImage) cv2.imshow ('Серое изображение', grayImage) cv2.waitKey (0) cv2.destroyAllWindows ()
Проверка кода
Чтобы протестировать код, просто запустите предыдущий скрипт Python в любой среде по вашему выбору. Естественно, вы должны использовать в качестве входных данных функции imread путь, указывающий на изображение в вашей файловой системе.
Вы должны получить результат, подобный рисунку 1, который показывает три версии изображения, отображаемые в разных окнах. Как видно, изображение было преобразовано в черно-белое, как и ожидалось.
Рисунок 1 - Вывод программы, показывающий три версии изображения: исходное, в градациях серого и черно-белое.Похожие сообщения
Список литературы
[1] https://docs.opencv.org/3.4/d7/d4d/tutorial_py_thresholding.html
[2] https: // docs.opencv.org/3.2.0/d7/d4d/tutorial_py_thresholding.html
[3] https://docs.opencv.org/2.4.13.7/doc/tutorials/imgproc/threshold/threshold.html#threshold-binary
Нравится:
Нравится Загрузка ...
,Определение цветапо чб фото?
Привет, Джек,Да, вы можете определить цвета на многих черно-белых фотографиях!
В Doerner Institut в Мюнхене нас попросили сделать это для организации, желающей восстановить свою собственность в Берлине до первоначальных цветов
по ч / б фото. В то время у нас не было ресурсов, чтобы принять вызов.
Примерно один из миллиона британцев страдает полной цветовой слепотой и видит только черно-белое изображение.Для компенсации они стали очень
чувствительны к оттенкам серого и при постоянном воздействии на окружающих, сообщающих им, какого цвета объекты, они учатся распознавать цвета
независимо. Странным следствием является то, что они также могут правильно определять цвета на оригинальном монохромном телевизоре
с 405 строками.
передачи, или из монохромных кинофильмов!
Как предположил другой член, это возникает из-за взаимодействия известных цветов с неизвестными цветами. Глубокое синее платье отражает очень
иначе на розовощекую женщину, чем на красное платье.Угол здания под углом 45 ° с прямыми солнечными лучами, 5780K с одной стороны,
а голубое небо 8000K на теневой стороне даст соотношение плотностей, которое зависит от цвета краски для стен. Для данного набора
условия, которые включают уровень облачного покрова и геометрию камеры, солнце и здание, а затем, изменяя только цвет здания,
соотношение плотности двух стенок изменится!
Но кто имеет доступ ко всем этим данным и может также откалибровать химию негатива и бумаги? Мы этого не сделали, поэтому отказались от
.
запрос.
Тем не менее, было бы проще найти любого из 60 полностью дальтоников в Великобритании и попросить их взглянуть на
фото. Если краска для кладки не слишком бледная, есть шанс, что они смогут определить цвет на собственном опыте.
PS. Вот связанная тема: можно ли идентифицировать цвета в сцене, когда натриевое освещение низкого давления является единственным источником освещения?
,