Jump to content
Compvision.ru
Khludenkov

Матрица цветокоррекции в YUV

Recommended Posts

Здравствуйте.

Вопрос возможно не в тему. Если знаете, подскажите, где можно посмотреть.

Сейчас настраиваю оптический сенсор OV5640, в частности его цветность.

Там есть такой параметр как матрица цветокоррекции. Я и так в этих вопросах не очень силён, а здесь ещё она настраивается для цветового пространства YUV.

Подскажите, кто-нибудь решал подобные задачи?

Т.е. это придётся вначале определить матрицу цветокоррекции для RGB (3Х3), а затем как-то пересчитать её для yuv?

По формулам перевода RGB в YUV ? 

Share this post


Link to post
Share on other sites

Формулы перевода. Да, их много. И конкретная формула зависит от того, что именно делается. Например, в JPEG используется такая.

Далее не очень понятно, с чем ты имеешь дело. С камеры снимается сырой сигнал, потом происходит операция дебайеризации (в OpenCV тоже есть). Потом перед сжатием в JPEG или h.264 происходит перевод в YUV (YUV420, YUV422, YUV444 или что-то другое). После декодирования кадра опять получается тот же YUV. OpenCV внутри себя переводит в BGR и отдаёт пользователю.

Теперь уточнение: на каком этапе предстоит цветокоррекция?

Ещё можно добавить, что OpenCV представляет внутри себя кадры в виде некоторого вектора на пиксель. BGR - вектор размера 3, GRAY - размер 1, HSV - размер 3. YUV так представить уже нельзя, разве что редкий YUV444. YUV естественным образом хранится в виде planes (то есть матриц), в которых пиксель с координатами (x, y) хранится в 3-х разных матриц. OpenCV так не умеет, насколько я знаю. Там есть перевод в один из вариантов YUV, но это не обязательно тот вариант, который был использован в камере. Вообще в OpenCV с этим плохо.

  • Thanks 1

Share this post


Link to post
Share on other sites

Спасибо.

11 минуту назад, idrua сказал:

В OpenCV это одна строка кода.

Здесь всё хардово сделать надо...

 

Формат кадра - YUV422. До этого работал только с RGB.

Цветокоррекция должна быть на самом начальном этапе.

Share this post


Link to post
Share on other sites

Ну, попробуй перевести и умножить. Если получится, то всё нормально.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×