Khludenkov 1 Report post Posted January 31, 2018 Здравствуйте. Вопрос возможно не в тему. Если знаете, подскажите, где можно посмотреть. Сейчас настраиваю оптический сенсор OV5640, в частности его цветность. Там есть такой параметр как матрица цветокоррекции. Я и так в этих вопросах не очень силён, а здесь ещё она настраивается для цветового пространства YUV. Подскажите, кто-нибудь решал подобные задачи? Т.е. это придётся вначале определить матрицу цветокоррекции для RGB (3Х3), а затем как-то пересчитать её для yuv? По формулам перевода RGB в YUV ? Share this post Link to post Share on other sites
idrua 8 Report post Posted January 31, 2018 В OpenCV это одна строка кода. Cv2.CvtColor(img, img, ColorConversionCodes.BGR2YUV); Ну и в той же вики есть формула перевода. Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted January 31, 2018 Формулы перевода. Да, их много. И конкретная формула зависит от того, что именно делается. Например, в 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 с этим плохо. 1 Share this post Link to post Share on other sites
Khludenkov 1 Report post Posted January 31, 2018 Спасибо. 11 минуту назад, idrua сказал: В OpenCV это одна строка кода. Здесь всё хардово сделать надо... Формат кадра - YUV422. До этого работал только с RGB. Цветокоррекция должна быть на самом начальном этапе. Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted January 31, 2018 Ну, попробуй перевести и умножить. Если получится, то всё нормально. Share this post Link to post Share on other sites
Khludenkov 1 Report post Posted January 31, 2018 Спасибо. Попробую. Share this post Link to post Share on other sites