Цветовая коррекция RGB изображений с ПЗС-камер [закрыто]

Я разработал приложение, которое может напрямую связываться с ПЗС-камерой (неизвестной и малоизвестной), и я могу захватывать и сохранять изображение с этой камеры.

При первом захвате изображения последовательность байтов для данных RGB является последовательной (RRRGGGBBB), поэтому я исправляю это, просто чередуя значения. При этом цвета изображения инвертируются. Чтобы исправить этот шаг, я просто вычитаю значения пикселей из 255.

На данном этапе у меня есть изображение, очень похожее на отсканированное, за исключением полосы цветов RGB по краям сканируемого. Если вы увеличите изображение, которое я приложил, вы заметите красные/зеленые/синие линии по краям полосок; наиболее заметно вокруг 2D штрих-кода.

Результат камеры CCD

У меня два вопроса по этой теме:

  1. Может ли кто-нибудь уточнить причину этой проблемы? Будет ли это случай хроматической аберрации? или что-то другое, что часто можно наблюдать в низкокачественных ПЗС-камерах?
  2. Какие методы могут существовать для решения этой проблемы (которые должны выполняться в режиме реального времени на оборудовании типа киоска.

Редактировать 1: включено полное изображениевведите описание изображения здесь

Редактировать 2: Включено исходное изображение CCD до инверсии цвета.введите описание изображения здесь

Это кроп с большего изображения? - это похоже на хроматическую аберрацию да, если это не из центра изображения, а сверху/снизу/сбоку, то это и есть причина.
Похоже на хроматическую аберрацию, но я вижу, что она присутствует на всем изображении. Как вы получаете ваши изображения? Вы используете фильтр Байера? Что-то может быть не так на этапе реконструкции из цветного изображения. Кроме того, просто идея: если вы собираетесь проверять только QR-коды, вы можете рассмотреть возможность использования изображений в градациях серого.
@DarkcatStudios Да, изображение было обрезано. Я прикрепил исходное изображение в редактировании.
@SelimArikan Я получаю данные RGB с ПЗС-камеры через USB-соединение. Это все делается программно. Никакие фильтры не используются, только 255 цветов для получения правильных цветов. Содержимое полос (отсутствующих) будет цветным, и эта информация является обязательной, что исключает использование оттенков серого.
@DarkcatStudios Является ли хроматическая аберрация решенной проблемой? Существуют ли решения в реальном времени? или они обычно оценки?
@SelimArikan Извините, я сначала подумал, что вы имеете в виду фильтры постобработки. ПЗС-камера совершенно не имеет торговой марки, и у меня нет информации о ее внутреннем устройстве, поэтому я не могу сказать вам, какой фильтр она использует.
Я вижу, что ваше изображение квантовано до 32 уровней. Причем оттенок смещается по вертикали не только близко к краям (гл. аберрация), но и по всему изображению ( i.imgur.com/Rcna2de.png ). Мое мнение, что-то не так с процессором изображения камеры или, что еще хуже, с ПЗС.
@SelimArikan Интересно; весь процессор и камера изготовлены небольшой фирмой, которой больше нет. Я знаю, что в прошлом это было компенсировано другими разработчиками (без контакта / без исходного кода), поэтому для этого должна быть техника; моя единственная проблема в том, что я не знаю, что это за техника.
Это не CA, это просто артефакт датчиков R, G и B, которые не находятся в одном и том же физическом месте. Вам нужно просто настроить расположение каналов R, G и B (при обработке изображения, то есть перемещение по пикселям или субпикселям), и у вас будет составное изображение без ошибок.
Этот вопрос кажется не по теме, потому что речь идет о компьютерном зрении, которое вряд ли соответствует фотографии.
В начале автор сомневался в качестве ПЗС и хроматической аберрации, в конце концов мы пришли к выводу, что проблема вызвана датчиком или этапом реконструкции камеры, что, ИМХО, делает этот вопрос актуальным.
Извините, но я думаю, что это очень погранично и немного не так. Похоже, это для приложения для сканирования штрих-кода, и я не очень понимаю, как это поможет фотографам.
JoanneC: На самом деле меня интересует не сканирование штрих-кода, а определение того, что не так с ПЗС-камерой. Прежде чем прийти сюда, я обратился за советом, и вопрос был задан здесь, поскольку он не был достаточно связан с кодированием или программированием. К счастью, я нашел кого-то, кто мог сказать мне, что проблемы с камерой привели к решению.

Ответы (1)

Чтобы это исправить, вам нужно разложить ваше изображение на каналы RGB отдельно. Каналы R и G смещены по вертикали от канала B на 5 пикселей каждый. Вам нужно выровнять эти каналы по вертикали. Например, я сдвинул красный канал на 10 пикселей и зеленый канал на 5 пикселей относительно синего канала.

Вот результат в сравнении:

Сдвинут одинСмещено

Исправил одинИсправлено

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

Отличный Селим. Как раз те знания, которые мне были нужны, спасибо. Однако быстрый вопрос; при смещении что остается в промежутках? последние пиксели циклически перемещаются в начало или они заменяются черным/белым/альфа?
Это на самом деле ваши предпочтения. Я обрезал изображение, как вы можете видеть в его нижней части. Если вам нужно сохранить исходный размер изображения, вы можете поместить черные пиксели в соответствии с фоном.
Да ладно, я вижу! Еще раз спасибо за помощь и пояснения.