Преобразование кадров DeckLink в OpenCV? - PullRequest
0 голосов
/ 27 мая 2018

Я звоню кадрам с карты захвата Blackmagic Decklink и пытаюсь преобразовать их в cv::Mat.

У меня это работает, но полученные кадры выглядят так:

enter image description here

Когда они должны выглядеть следующим образом:

enter image description here

Входящие кадры действительны, поэтомудолжно быть мое обращение.Исходя из этого вопроса:

Получение левого и правого кадров с помощью BlackMagic SDK и преобразование их в opencv mat

Я использую:

bool deckLinkVideoFrameToCvMat(ComPtr<IDeckLinkVideoInputFrame> in,
    cv::Mat& out)
{

    void* data;
    if (FAILED(in->GetBytes(&data))) {
        std::cout << "Fail obtaining the data from videoFrame\n" << std::endl;
        return S_FALSE;
    }


    cv::Mat loadedImage;

    cv::Mat mat = cv::Mat(in->GetHeight(), in->GetWidth(), CV_8UC2, data, in->GetRowBytes());
    cv::cvtColor(mat, loadedImage, CV_YUV2BGR_UYVY);


    loadedImage.copyTo(out);


    return true;
}

Где я иду не так?

РЕДАКТИРОВАТЬ: с удаленным параметром шага, как предложено:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...