Я использую Network Optix Сервис управления видео. Используя их приложение, я создаю плагин. Для моей цели я хочу экспортировать кадр как изображение из видео. для этого я использовал следующий код для преобразования в объект cv и сохранения в свой файл.
cv::Mat img_color;
cv::Mat img(
videoFrame->height(),/*_rows*/
videoFrame->width(), /*_cols*/
CV_8UC1, //< BGR color space (default for OpenCV) /*_type*/
(void*) videoFrame->data(0), /*_data*/
(size_t) videoFrame->lineSize(0)); /*_step*/
cv::cvtColor(img, img_color, CV_GRAY2RGB);
m_lastVideoFrameTimestampUs = videoFrame->timestampUs();
std::string file_path = "/var/www/html/images/"+std::to_string(m_lastVideoFrameTimestampUs)+".jpg";
cv::imwrite(file_path,img_color);
ниже снимок экрана - это то, что я получаю в клиентском приложении Network Optix.
Но это то, что я получаю в виде файла изображения на моей машине.
-
cvtColor
не влияет на изображение - Я думаю,
CV_8UC1
аргумент должен быть изменен так, чтобы я получал RGB-изображение
РЕДАКТИРОВАТЬ - 1:
изменяется CV_8UC1
на CV_8UC3
Результат превращается в 3 сегмента изображения