Decklink帧转换为opencv?

时间:2018-05-27 14:16:34

标签: opencv image-processing

我正在使用Blackmagic Decklink捕获卡调用帧并尝试将它们转换为cv::Mat

我有这个工作,但结果框架看起来像这样:

enter image description here

当他们看起来像这样:

enter image description here

传入的帧是有效的,因此它必须是我的转换。基于这个问题:

Getting left and right frames with BlackMagic SDK and convert them into 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;
}

我哪里错了?

编辑:删除了stride参数,如建议:

enter image description here

0 个答案:

没有答案