Перейти к содержимому
Compvision.ru

Recommended Posts

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Cv2.CvtColor(img, img, ColorConversionCodes.BGR2YUV);

Ну и в той же вики есть формула перевода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Формулы перевода. Да, их много. И конкретная формула зависит от того, что именно делается. Например, в 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо.

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

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×