Доброго дня!
Перед сжатием захваченного буфера (YUV420) мне необходимо добавить в него некоторую текстовую информацию.
try {
_img[0] = new cv::Mat(encop.picHeight, encop.picWidth, CV_8UC1,
reinterpret_cast<unsigned >(_src_mem.virt_uaddr));
_img[1] = new cv::Mat(encop.picHeight / 2, encop.picWidth / 2, CV_8UC1,
reinterpret_cast<unsigned *>(_src_mem.virt_uaddr +
_size));
_img[2] = new cv::Mat(encop.picHeight / 2, encop.picWidth / 2, CV_8UC1,
reinterpret_cast<unsigned *>(_src_mem.virt_uaddr +
_size + _size / 4));
} catch (std::bad_alloc &e) {
daemon_error("Failed allocate memory for OpenCV data!");
}
putText(*_img[0], _osd, cv::Point(20, 20), cv::FONT_HERSHEY_SIMPLEX,
0.5, cvScalar(6.0, 249.0, 223.0), 0, 16);
putText(*_img[1], _osd, cv::Point(10, 10), cv::FONT_HERSHEY_SIMPLEX,
0.25, cvScalar(6.0, 249.0, 223.0), 0, 16);
putText(*_img[2], _osd, cv::Point(10, 10), cv::FONT_HERSHEY_SIMPLEX,
0.25, cvScalar(6.0, 249.0, 223.0), 0, 16);
- выводимый текст имеет другой цвет
- выводимый текст выглядит не чётким"
Собственно вопросы:
- как возможно упростить код если OpenCV умеет работать с YUV
- как возможно решить описанные проблемы если OpenCV не умеет работать с YUV
Спасибо.