Оптика, использующая объектив и сенсор, - самый быстрый и простой способ создать изображение. У нас есть для этого устройство - камера. Изображения также можно создавать неоптическими средствами с использованием вычислительных алгоритмов. Добро пожаловать в сферу компьютерной фотографии. Он широко используется в камерах смартфонов, а его функции находят применение в коммерческих приложениях. Обычно это применимо к цифровой фотографии, а не к пленочной фотографии. Примеры: iPhone портретные от Apple и Sensei от Adobe для пакета Creative Cloud.

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

Хотя вы можете создавать изображения с помощью вычислений без использования камеры, вам в первую очередь потребуется изображение для работы. Его можно получить не только от камеры, но и от различных оптических источников, таких как сканер или датчик. Что нам нужно, так это изображение, чтобы начать работу. В этом примере мы возьмем изображение RAW, снятое с камеры DSLR, и преобразуем его в растровый формат (JPEG). Это сжатие с потерями, но для изображения будет установлено меньшее сжатие для большей детализации при максимальном разрешении (в данном случае это 4928 x 3264 пикселей или 16 МП). Как только у нас будет готовое изображение, мы можем начинать.

RAW изображение

Начнем с изображения RAW - файла, созданного при захвате изображения с камеры или устройства. Это оптическая экспозиция, которая создается, когда объектив фокусирует изображение на датчике, и сохраняется на цифровом носителе. Если вы снимаете на Canon, у вас, скорее всего, будет файл с расширением .CR2, а у снимков Nikon - расширение .NEF. У каждого производителя камеры обычно свой формат, но убедитесь, что это формат файла RAW. Обычно перед съемкой необходимо проверить настройки камеры, чтобы узнать, сохраняете ли вы изображения в несжатом формате RAW или в виде сжатых файлов JPEG (более подробную информацию см. В документации камеры).

Мы начинаем с изображения RAW, потому что именно здесь начинается процесс создания изображения. Фотографы предпочитают снимать в формате RAW, потому что он сохраняет высочайшее качество с точки зрения деталей и может быть отредактирован с помощью программного обеспечения неразрушающего редактирования перед экспортом в более управляемый формат. Файлы RAW не сжимаются, поэтому они занимают больше всего места и, следовательно, сами по себе не идеальны для редактирования. Вместо этого он должен быть преобразован в формат, такой как JPEG, который сжимается, поэтому он уменьшает размер файла, но за счет детализации. Установите более подробную степень сжатия, но больший размер файла или большее сжатие с меньшей детализацией. Для загрузки в Интернет и социальные сети подходят сжатые форматы, обычно не требующие высокого разрешения. Для профессиональной работы более высокое разрешение - это не просто требование, а норма.

В компьютерной фотографии снимок RAW автоматически конвертируется в JPEG для пользователя. Это происходит быстро за кадром, пользователь об этом даже не подозревает. Все, что они видят, - это свое захваченное изображение, которое уже подверглось постобработке в результате обработки изображения от провайдера (Image Signal Processing) и программного обеспечения камеры смартфона. Захваченное изображение также включает метаданные, называемые EXIF ​​(формат файла с возможностью обмена).

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

Растровые изображения

Растровое изображение - это массив пикселей, который может хранить более одного значения цвета на пиксель. Он создан из исходного изображения. Программное обеспечение начинает преобразование с создания растрового изображения исходного изображения, которое затем временно сохраняется в подсистеме памяти под случайным типом имени, например. tmpzg3tjpyo.PNG (он также может использовать расширение BMP).

После преобразования RAW в JPEG файл нужно сначала открыть, а затем загрузить в память.

Что касается кодирования, вот пример того, как это будет работать с использованием Python.

>>> img = Image.open("TestImage.jpg")
>>> img.show()

Программное обеспечение камеры смартфона (это не точная строка кода, просто пример) сначала загружает изображение в виде растрового изображения в память. Это создает рабочее пространство для начала преобразования изображения. В результате EXIF ​​удаляется из исходного исходного изображения. Это также верно при составлении нескольких изображений, сшивании и в эффектах HDR.

Улучшение изображения

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

>>> img = img.filter(ImageFilter.SHARPEN)
>>> enhance1 = ImageEnhance.Brightness(img)
>>> enhance_img = enhance1.enhance(1.8)
>>> enhance2 = ImageEnhance.Contrast(img)
>>> enhance_img = enhance2.enhance(8.4)
>>> img2 = img.point(lambda p: p * 0.9)

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

Теперь мы можем вносить дополнительные изменения, регулируя разрешение (размер) изображения.

>>> width, height = img2.size
>>> resizedImage = img2.resize((int(width/2), int(height/2)))

Размер изображения был изменен на 1/2 от исходного размера. Это было сделано путем взятия img2 и создания нового объекта с именем resizedImage. Новый объект, размер которого был уменьшен, теперь имеет разрешение 2464 x 1632 пикселей. Это меньше 4928 x 3264 пикселей.

Это последняя настройка перед сохранением изображения.

>>> resizedImage.save("FinalImage.jpg")

Мгновенное ретуширование и высокое качество результатов

Мы просто рассмотрели, что происходит, когда вы спускаете затвор и просматриваете изображение на дисплее. Все происходит так быстро, но дает потрясающие результаты. Иногда изображения получаются слишком красивыми. Это связано с тем, что камера смартфона использует программное обеспечение AI (искусственный интеллект) для определения наилучшей экспозиции. Аппаратное обеспечение камеры использует кадровые буферы для получения различных экспозиций изображения. Он выберет самое резкое изображение, а затем применит фильтры для улучшения. Используемый код - это просто примеры того, что происходит в течение всего этого процесса. Это экономит время, поскольку не требует от пользователя какой-либо пост-обработки. Ретушь произведена с помощью программного обеспечения камеры.

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

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