Принцип работы камеры ISP Pipeline |
Принцип работы камеры ISP Pipeline |

ISP Pipeline

Introduction

ISP (Image Signal Process, обработка сигнала изображения), то есть механизм обработки изображений
Существует огромная разница между необработанными данными, выдаваемыми датчиком, и изображением, ожидаемым людьми.
  • Первый – это физические дефекты объектива и CMOS-сенсора.
  • Во-вторых, условия освещения для съемки разнообразны, а объектив и сенсор должны адаптироваться в соответствии с окружающей средой (так же, как человеческий глаз должен адаптироваться к свету и темноте окружающей среды посредством масштабирования зрачка).

Raw Data

ISP Pipeline

ISP Pipeline2

BLC (коррекция уровня черного) — коррекция уровня черного.

Проблема: Датчик имеет ток утечки.

Из-за тока утечки датчика, если объектив находится в полностью темной среде, исходные данные, выдаваемые датчиком, не будут равны 0, и мы надеемся, что исходные данные будут равны 0, когда будет совсем темно;

Принцип обработки:

Нам нужно найти значение коррекции, вычесть это значение из всех значений пикселей и получить успешный результат коррекции.

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

Слева — непроверенное изображение, справа — исправленное изображение.

image-20231123142016278

image-20231129105007070

LSC (Коррекция затенения линзы) — Коррекция затенения линзы

Проблема: больше света достигает середины датчика через линзу, чем достигает края датчика, что приводит к виньетированию в оптической системе.

Это связано с тем, что по мере медленного увеличения поля зрения наклонный луч, который может пройти через объектив камеры, постепенно уменьшается. В результате изображение, снятое Сенором, имеет высокую яркость в середине и низкую яркость по краям.

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

Изображение слева ниже без коррекции затенения объектива, а изображение справа — после коррекции затенения объектива.

image-20231123142450451

image-20231129105047471

BPC (коррекция плохих точек) — коррекция плохих точек.

Проблема: на выходе некоторых пикселей Senor есть плохие пиксели.

Поскольку датчик является физическим устройством, битые пиксели неизбежны, и со временем их будет становиться все больше и больше. Наблюдая за выходными цветными точками и яркими пятнами в совершенно темном помещении или наблюдая за выходными цветными и черными точками под белым объектом, вы можете увидеть неравномерно разбросанные повсюду плохие пиксели.

Принцип обработки:

Шаг первый: обнаружение плохих пикселей. Оценка 5x5 выполняется в области RGB. Если отклонение между определенной точкой и окружающими точками превышает пороговое значение, это плохая точка. Чтобы предотвратить ошибочные оценки, требуется более сложная логика, например, непрерывная оценка N кадров.

image-20231129104503127

image-20231129104903109

Шаг 2. Исправьте плохие пиксели. Выполните медианную фильтрацию найденных плохих пикселей и замените исходные значения.

  • 1 mean filter

image-20231129104806397

  • 2 gradient-based filter

image-20231129104756633

Bayer Denoise — убрать шум

Фоточувствительное устройство Сенора содержит аналоговую часть, поэтому шума в сигнале избежать сложно, да и само устройство АЦП также будет вносить шум. Кроме того, когда свет темный, всей системе необходимо усиливать сигнал, поэтому шум также усиливается.

Когда мы смотрим на снимки, не обработанные шумоподавлением, мы чувствуем, что на снимке плавает слой разноцветных снежинок.

Принцип обработки:Традиционным методом снижения шума изображения является фильтрация по среднему значению.、Гауссов фильтр,По сути фильтр нижних частот.

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

Ниже показано изображение до фильтрации слева и изображение после фильтрации справа.

image-20231123164935146

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

https://qitingshe.github.io/2018/06/14/%E5%8F%8C%E8%BE%B9%E6%BB%A4%E6%B3%A2/

http://await.fun/ImageProcessing/i2/3.html Справочник по изображениям

RGB Gamma — Гамма-калибровка

Проблема: человеческий глаз более чувствителен к темным деталям, чем сенсор.

Принцип обработки:GammaЗакодированное изображение сравнивается с линейно закодированным изображением.,Очевидно, что темных уровней больше.。GammaКодировка соответствует чувствительности человеческого глаза к темным деталям.。То есть человеческий глаз следуетgamma < Кривая 1 используется для обработки входного изображения (формула f(I)=I^gamma, I — значение пикселя исходного изображения)

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

Левое изображение — исходное изображение, среднее изображение — результат коррекции гаммы = 1/2,2, а правое изображение — результат коррекции гаммы = 2,2.

image-20231123142737255

image-20231129105359061

image-20231129105341521

Если изображение отображается так же, как на мониторе и т. д., экран будет темным. Гамма-коррекция достигает цели коррекции изображения путем предварительного увеличения значения RGB для устранения влияния.

img

Нелинейное преобразование вызывается следующей формулой, где I_in и I_out нормализованы и ограничены диапазоном [0,1], c — константа, а g — гамма-переменная, обычно принимаемая равной 2,2.

img

Язык кода:javascript
копировать
import cv2
import numpy as np
import matplotlib.pyplot as plt

# gamma correction
def gamma_correction(img, c=1, g=2.2):
    out = img.copy()
    out /= 255.
    out = (1/c * out) ** (1/g)

    out *= 255
    out = out.astype(np.uint8)

    return out

# Read image
img = cv2.imread("../paojie.jpg").astype(np.float)
# Gammma correction
out = gamma_correction(img)
# Save result
cv2.imshow("result", out)
cv2.imwrite("out.jpg", out)
cv2.waitKey(0)
cv2.destroyAllWindows()

Исходное изображение

После коррекции

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

Степенная зависимость между значениями входных и выходных пикселей равна:

  • Экспоненциальный коэффициент меньше 1 сделает изображение ярче.
  • Экспоненциальные коэффициенты больше 1 затемнят изображение.

file

AWB (автоматический баланс белого) — автоматический баланс белого.

Проблема: на изображения, полученные с помощью Senor, легко влияет цвет источника света.

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

Но у Сенсора таких характеристик нет. Например, на листе белой бумаги при разном освещении Сенсор выдаёт разные цвета: при низкой цветовой температуре он желтоватый, а при высокой — голубоватый. Например, фотографии, сделанные при освещении лампами накаливания, обычно имеют желтоватый оттенок; тогда как при достаточном солнечном свете пейзаж также будет иметь голубоватый оттенок.

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

Принцип обработки:Чаще используетсяWEBалгоритм Существует мир в оттенках серого、Метод идеального отражения и т. д.

Алгоритм «Серого мира» основан на предположении: в среднем мир серый. Таким образом, баланс белого предназначен для регулировки усиления R/B, чтобы сделать R, G и B равными.

Баланс белого состоит из трех этапов:

(1) Определите цветовую температуру. Если вы настроите ее вручную, вы будете знать, где находится белый объект на изображении, а цветовую температуру легко определить. Если вы настроите ее автоматически, вам нужно будет оценить (угадать) белый цвет. положение на изображении Это самое главное кольцо;

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

(2) Рассчитайте коэффициент усиления, вычислите коэффициент усиления, который необходимо скорректировать для R и B, отрегулируйте коэффициент усиления, чтобы установить два коэффициента Cb и Cr на 0 (или близкое к 0), то есть R=G=B;

(2) Коррекция цветовой температуры: отрегулируйте цветовую температуру всего изображения в соответствии с усилением.

image-20231129105203909

image-20231124093855217

image-20231129105126928

Демозаика - интерполяция цвета

Проблема: Датчик Cmos использует матрицу цветных фильтров Байера (CFA).

Само собой разумеется, что датчик выводит необработанные данные RGB, и каждый пиксель воспринимает трехкомпонентное число RGB, которое является наиболее точным. Однако для этого требуются 3 набора светочувствительных пластин, а 3 набора данных RGB также должны быть синхронизированы и выровнены по времени, что является дорогостоящим и трудным.

Поэтому мы обычно используем фильтрующую пластину под названием **Цветной фильтр Байера (CFA)** и помещаем ее на светочувствительную пластину.

На рисунке ниже представлена ​​светочувствительная панель с разрешением 8x8. Цветная часть на рисунке (a) представляет собой матрицу цветных фильтров Байера, а три цвета RGB расположены с интервалами. При такой фотографии получаются три изображения RGB на рисунке (b). Цветные изображения на изображении имеют светочувствительные значения, а белые пустые точки представляют собой точки без светочувствительных значений. Нам необходимо заполнить значения белых пикселей методом Demosaic (интерполяция цвета).

Рисунок (б) Количество зеленых пикселей в два раза больше, чем красных или синих, поскольку люди более чувствительны к зеленому цвету.

image-20231124095406934

Структура массива цветных фильтров Байера: (а) CFA на поверхности датчика (б) Световое разделение цветовых компонентов и результирующие различные пиксели датчика;

Примечание. Массив цветных фильтров Байера — не единственный вариант, это всего лишь одно из решений, изобретенных Байером, ученым из Kodak. Huawei P30pro отлично справляется с ночной фотографией благодаря конструкции массива фильтров RYYB. RYYB заменяет два зеленых пикселя (G) желтыми пикселями (Y), Y (комбинация красного и зеленого).

Принцип обработки:На дополнительном рисунке(b)Когда значение среднего белого пикселя равно,Мы можем представить себе значение каждого белого пикселя как,Значение аналогично той же цветовой точке рядом с ним. так,Самый простой метод – интерполяция

  • R берет среднее значение двух левых и правых
  • ГБ принимает среднее значение 4 соседних

image-20231124095502006

image-20231124095556378

Эффект обработки:более зрелый。Левая часть изображения нижеDemosaicбывший,Изображение справа сделано после Demosaic.

image-20231124095955343

CCM (матрица цветовой коррекции) — коррекция цвета.

Проблема: ошибки цвета, вызванные растеканием цвета между цветными блоками на фильтрующей пластине Senor.

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

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

Принцип обработки:Сначала изображение, полученное датчиком изображения, сравнивается со стандартным изображением.,Это используется для расчета матрицы коррекции.,Обычно,Процесс цветокоррекции,Все будет сопровождаться корректировкой насыщенности цвета. Насыщенность цвета означает чистоту цвета.,Чем выше чистота определенного цвета,Чем ярче исполнение, тем ниже чистота.,Спектакль относительно мрачный.

Калибровка с использованием матрицы CCM 3X3, Коэффициенты каждого столбцаr1+g1+b1равно постоянному значению1。CCMОкончательного результата коррекции можно добиться, фотографируя24 цветные картыкартинку, а затем использоватьimatest(Профессиональное программное обеспечение для анализа изображений.,С мощными функциями анализа и обработки изображений) анализ для справки

image-20231129105521232

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

image-20231124094117848

image-20231129105541946

RGBToYUV — преобразование цветового пространства.

Вопрос: Сенор выводит необработанные данные в формате RGB, но некоторая обработка удобнее в YUV, а YUV экономит полосу пропускания при хранении и передаче.

В цветовом пространстве YUV удобнее выполнять удаление цветового шума, улучшение краев и т. д.

Принцип обработки:YUV это базовое цветовое пространство, Человеческий глаз гораздо более чувствителен к изменениям яркости Y, чем к изменениям цвета. поэтому, Для человеческого глаза, Компонент яркости Y По сравнению с компонентами цветности U и V Гораздо важнее. Таким образом, только соотношение данных YUV в формате YUV444 составляет 1:1:1. В других форматах, таких как YUV422, YUV420 и других форматах, объем данных UV меньше, чем Y, что экономит место для хранения и полосу пропускания. Концепция данных YUV очень проста. (Просто проверьте документацию при программировании и разберитесь с расположением памяти)

Во-вторых, существуют фиксированные формулы преобразования RGB и YUV.

Кроме того, среди семейства YUV YCbCr является наиболее широко используемым членом в компьютерных системах, и его области применения очень широки. И JPEG, и MPEG используют этот формат. Большинство людей, о которых говорят YUV, относятся к YCbCr.

Эффект обработки:Никакого изменения качества изображения, видимого человеческому глазу

Color Denoise / Sharpness — шумоподавление и повышение резкости.

Проблема: цветовое пространство YUV требует дальнейшего снижения шума и повышения резкости.

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

Потому что в цветовом пространстве YUV эти процессы более удобны.

Имя модуля обработки:Color denoise / sharpness

Принцип обработки:Подавление цветового шума на изображениях, Обычно для обработки используется фильтр нижних частот. Например, используйте гауссов фильтр нижних частот M×N для обработки канала цветности.

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

Поток обработки:расчет в реальном времени,И нужно заранее корректировать.

Эффект обработки:Требования и эффекты снижения шума постоянно улучшаются.,А шумоподавление и повышение резкости противоречат друг другу.,Так что будут разные алгоритмы. Как показано ниже,Слева направо точит, Справа налево размытие.

image-20231123152628407

Язык кода:javascript
копировать
def sharpen_Laplacian(in_img):
    I = in_img.copy()
    kernel = np.array([[0, -1, 0], [-1, 4, -1], [0, -1, 0]])
    # L = cv2.filter2D(I, -1, kernel)
    L = cv2.Laplacian(I, -1, kernel)
    a = 0.5
    O = cv2.addWeighted(I, 1, L, a, 0)
    O[O > 255] = 255
    O[O < 0] = 0
    return O

Лапласовское повышение резкости изображения основано на степени мутации окружающих пикселей определенного пикселя изображения в этот пиксель, то есть оно основано на степени изменения пикселей изображения. Этот метод должен быть относительно классическим. Проще говоря, он использует оператор Лапласа для расчета Исходного. изображение выполняет свертку, получает обработанное изображение и затем объединяет его с Исходное изображение Наложение。

img

AEC (автоматический контроль экспозиции) — автоматическая экспозиция.

Проблема: датчик изображения и объектив требуют, чтобы модуль ISP автоматически регулировал время экспозиции в зависимости от интенсивности освещения.

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

Принцип обработки:

Реализация автоматического воздействия обычно включает в себя три этапа:

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

2) Анализ сценариев. Анализ сцены относится к обработке, выполняемой для получения особых условий текущего освещения.,Например, есть лиПодсветкаилиФронтальный светПодождите сцены。Анализ этой информации,Может повысить удобство использования датчиков изображения,И может значительно улучшить качество изображений,Это наиболее важная технология автоматического экспонирования.。В настоящее время широко используемые методы анализа сцены в основном включают нечеткую логику иалгоритм искусственной нейронной сети。Этиалгоритм По сравнению с измерением в фиксированной зонеалгоритм Имеют более высокую надежность,Главным образом потому, что при формулировании нечетких правил или процессе обучения нейронных сетей учитывались различные условия освещения.

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

image-20231124094519539

AF (автофокусировка) ——Автофокусировка

Проблема: объективу необходимо отрегулировать фокусное расстояние, чтобы избежать оптического размытия изображения.

Принцип обработки:

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

Функция оценки фокуса

Существует множество типов оценочных функций. Основными факторами, учитываемыми при изображении, являются частота изображения (четкие изображения имеют больше текстур и более высокочастотное распределение) и распределение компонентов изображения в оттенках серого (чем больше диапазон распределения компонентов соответствующих оттенков серого). image) , что указывает на то, что изображение содержит больше деталей и отражает четкость изображения)

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

HDR (расширенный динамический диапазон) — широкий динамический диапазон.

Проблема: Senor не отображает достаточные детали в более темных или ярких частях при определенной экспозиции.

Средняя интенсивность света в природе очень широка, но способность человеческого глаза различать детали в условиях высокой яркости и очень темной среды относительно узка, а диапазон записи камеры еще уже. Настоящая технология HDR предназначена для записи с высокой яркостью и яркостью. чрезвычайно темные среды в пределах визуального разрешения.

Чтобы гарантировать, что диапазон яркости мира, видимого человеческим глазом, почти такой же или даже лучше, чем у изображения, снятого монитором или камерой, необходима тональная компрессия для воспроизведения темных и ярких деталей. Эта обработка выполняется исключительно для визуального восприятия, а не для настоящего HDR. Также называется WDR (широкий динамический диапазон).

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

Принцип обработки:

В основном с помощью метода тональной компрессии значение пикселя увеличивается в особенно темных областях и понижается в особенно ярких областях.

Тональное отображение имеет следующие типы:

  1. global tone mapping

(а) Кривая отображения одного тона. Для всей диаграммы потяните вниз, чтобы поднять вверх, и вверх, чтобы потянуть вниз. (Недостаток, создается впечатление слоя тумана, потому что после сжатия значения смещаются ближе к середине, и локальный контраст снижается)

image-20231124094844523

(б) Отображение тона двустороннего фильтра. Отображение тонов не будет выполняться на локальных краях изображения, чтобы сохранить локальные детали.

  1. local tone mapping

(а) Виртуальное воздействие. Определите, какие области являются светлыми, а какие — низкой яркостью, добавив несколько кадров. Затем раздел для локального отображения тонов

image-20231124094957561

(б) локальная гамма. Изображение разбивается на несколько блоков, и для каждого блока выполняется гамма-коррекция. Гамма-кривая динамически корректируется в основном на основе гистограммы яркости каждого блока.

image-20231124094949798

HDR Demo

Как iPhone захватывает HDR-изображения? Фактически он очень быстро снимает 3 изображения с тремя разными экспозициями с очень небольшим смещением между тремя изображениями.

Шаг 1. Сделайте несколько изображений с разной экспозицией.

Auto Exposure Bracketed HDR image sequence

Шаг 2. Выровняйте изображения

Композиция HDR-изображений с использованием смещенных изображений может привести к серьезным артефактам.

Шаг 3. Извлеките функцию ответа камеры.

Шаг 4. Объедините изображения

Шаг 5. Отображение тонов. Отображение тонов.

Язык кода:javascript
копировать
import cv2
import numpy as np


def readImagesAndTimes():
  
  times = np.array([ 1/30.0, 0.25, 2.5, 15.0 ], dtype=np.float32)
  
  filenames = ["img_0.033.jpg", "img_0.25.jpg", "img_2.5.jpg", "img_15.jpg"]

  images = []
  for filename in filenames:
    im = cv2.imread(filename)
    images.append(im)
  
  return images, times

if __name__ == '__main__':
  # Read images and exposure times
  print("Reading images ... ")

  images, times = readImagesAndTimes()
  
  
  # Align input images
  print("Aligning images ... ")
  alignMTB = cv2.createAlignMTB()
  alignMTB.process(images, images)
  
  # Obtain Camera Response Function (CRF)
  print("Calculating Camera Response Function (CRF) ... ")
  calibrateDebevec = cv2.createCalibrateDebevec()
  responseDebevec = calibrateDebevec.process(images, times)
  
  # Merge images into an HDR linear image
  print("Merging images into one HDR image ... ")
  mergeDebevec = cv2.createMergeDebevec()
  hdrDebevec = mergeDebevec.process(images, times, responseDebevec)
  # Save HDR image.
  cv2.imwrite("hdrDebevec.hdr", hdrDebevec)
  print("saved hdrDebevec.hdr ")
  
  # Tonemap using Drago's method to obtain 24-bit color image
  print("Tonemaping using Drago's method ... ")
  tonemapDrago = cv2.createTonemapDrago(1.0, 0.7)
  ldrDrago = tonemapDrago.process(hdrDebevec)
  ldrDrago = 3 * ldrDrago
  cv2.imwrite("ldr-Drago.jpg", ldrDrago * 255)
  print("saved ldr-Drago.jpg")
  
  # Tonemap using Durand's method obtain 24-bit color image
  print("Tonemaping using Durand's method ... ")
  tonemapDurand = cv2.createTonemapDurand(1.5,4,1.0,1,1)
  ldrDurand = tonemapDurand.process(hdrDebevec)
  ldrDurand = 3 * ldrDurand
  cv2.imwrite("ldr-Durand.jpg", ldrDurand * 255)
  print("saved ldr-Durand.jpg")
  
  # Tonemap using Reinhard's method to obtain 24-bit color image
  print("Tonemaping using Reinhard's method ... ")
  tonemapReinhard = cv2.createTonemapReinhard(1.5, 0,0,0)
  ldrReinhard = tonemapReinhard.process(hdrDebevec)
  cv2.imwrite("ldr-Reinhard.jpg", ldrReinhard * 255)
  print("saved ldr-Reinhard.jpg")
  
  # Tonemap using Mantiuk's method to obtain 24-bit color image
  print("Tonemaping using Mantiuk's method ... ")
  tonemapMantiuk = cv2.createTonemapMantiuk(2.2,0.85, 1.2)
  ldrMantiuk = tonemapMantiuk.process(hdrDebevec)
  ldrMantiuk = 3 * ldrMantiuk
  cv2.imwrite("ldr-Mantiuk.jpg", ldrMantiuk * 255)
  print("saved ldr-Mantiuk.jpg")

YUV Domain Processing

Y: представляет яркость (яркость или яркость). U и V: цветность (цветность или цветность), которая используется для описания цвета и насыщенности изображения и используется для указания цвета пикселя.

YCbCr, где Y относится к компоненту яркости, Cb относится к синему компоненту цветности, а Cr относится к красному компоненту цветности.

YCbCr является частью рекомендации ITU-R BT.601 при разработке видеостандарта Всемирной цифровой организации. На самом деле это масштабированная и смещенная версия YUV. Среди них Y имеет то же значение, что и Y в YUV, а Cr также относится к цвету, но они различаются способами выражения.

В семействе YUV YCbCr является наиболее широко используемым членом в компьютерных системах. Области его применения очень широки. Оба формата используют JPEG и MPEG. Большинство людей, о которых говорят YUV, относятся к YCbCr. YCbCr имеет множество форматов выборки, например 4:4:4, 4:2:2, 4:1:1 и 4:2:0.

Выборка YUV Канал цветности может дискретизироваться с меньшей частотой, чем канал яркости, без значительного снижения воспринимаемого качества.

4:4:4 означает полную выборку. 4:2:2 означает горизонтальную выборку 2:1 и полную вертикальную выборку. 4:2:0 означает горизонтальную выборку 2:1 и вертикальную выборку 2:1. 4:1:1 означает горизонтальную выборку 4:1 и полную вертикальную выборку.

Соотношение наиболее часто используемых записей Y:UV обычно составляет 1:1 или 2:1. Видео записывается в формате YUV4:2:0, что не означает то, что мы обычно называем YUV4:2:0. только U (т. е. Cb), V (т. е. Cr) Оно должно быть 0, но это означает, что U и V относятся друг к другу, иногда появляясь, а иногда скрываясь. То есть для каждой строки существует только один компонент U или V, если одна строка равна 4:2:0. , следующая строка 4:0:2, следующая строка 4:2:0... и так далее. Что касается других распространенных форматов YUV, к ним относятся YUY2, YUYV, YVYU, UYVY, AYUV, Y41P, Y411, Y211, IF09, IYUV, YV12, YVU9, YUV411, YUV420 и т. д.

1 Noise Filter for Luma/Chroma
2 False Color Suppression

На этапе демозаики могут появиться ложные цвета (кляксы), поскольку на этом этапе разрешаются очень мелкие детали. Подавление ложных цветов аналогично сглаживанию цветов. Каналы яркости не затрагиваются. Ложные цвета часто более заметны на изображениях, снятых камерами без фильтров сглаживания. Сегодня, в то время как демозаика вводит ложные цвета, другие, такие как линзы, оптические фильтры, динамическое сжатие и т. д. Подавление ложных цветов используется для уменьшения или устранения ложных цветов, возникающих во время формирования изображений с датчиков или контурирования трубопроводов. Еще одна особенность False Color Suppression — контроль насыщенности цветности при повышении резкости и обработке цветности. Управляйте насыщенностью цветности при повышении резкости и обработке цветного шума в различных условиях освещения, например в условиях низкой или низкой освещенности.

3 Edge Enhancement
  • Фильтрация улучшает детализацию краев

image-20231124180514797

image-20231124180423195

4 Hue/Saturation Control

Цветовые оттенки — это длины волн в спектре видимого света, при которых выходная энергия источника света максимальна. На графике зависимости интенсивности от длины волны оттенок отображается как пик кривой.

Насыщенность Насыщенность определяется сочетанием интенсивности света и распределения света в спектре. Степень распределения в спектре различных длин волн. Насыщенность выражается как крутизна наклона кривой.

Здесь красная кривая представляет менее насыщенный цвет, зеленая кривая представляет более насыщенный цвет, а синяя кривая представляет довольно насыщенный цвет. По мере увеличения насыщенности цвета кажутся более «чистыми». По мере уменьшения насыщенности цвета кажутся более «разбавленными». Насыщенность — это чистота или яркость цвета, выраженная отсутствием белого цвета. Цвет с насыщенностью 0%. эквивалентен серому.

image-20231124180053792

5 Brightness/Contrast Control

Контраст: это соотношение черного и белого на изображении, то есть уровень градиента от черного к белому. Чем больше соотношение, тем больше уровней градиента от черного к белому и тем богаче цветовое выражение. Контраст очень сильно влияет на визуальные эффекты. Вообще говоря, чем больше контраст, тем более четким и привлекательным будет изображение, а также более яркими и красочными будут цвета. Однако, если контраст небольшой, все будет в порядке. изображение будет серым. Высокая контрастность очень полезна для четкости изображения, передачи деталей и отображения оттенков серого. В некоторых аспектах, таких как отображение текста, отображение CAD и отображение черно-белых фотографий с большим черно-белым контрастом, высококонтрастные продукты имеют преимущества в черно-белом контрасте, четкости, полноте и других аспектах. Условно говоря, с точки зрения градации цвета влияние высокой контрастности на изображение не очевидно. Контраст оказывает большее влияние на эффект отображения динамического видео. Поскольку переходы света и темноты в динамических изображениях происходят относительно быстро, чем выше контраст, тем легче человеческому глазу различить такой процесс преобразования. Продукты с высокой контрастностью имеют более очевидные преимущества в детализации, четкости и производительности быстро движущихся объектов в некоторых темных сценах.

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

И яркость, и контрастность применяются к каналу яркости Y.

image-20231124175327480

3 A

References

  • https://github.com/cruxopen/openISP Код openISP может ссылаться на py
  • https://github.com/QiuJueqin/fast-openISP ускорение
  • https://github.com/cruxopen/openISP/blob/master/docs/Image%20Signal%20Processor.pdf docs
  • https://github.com/mv-lab/AISP AI заменяет интернет-провайдера
boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода