0

我正在尝试通过我正在编写的过滤器的输出引脚输出一个 Cv Mat 文件。我曾尝试使用 ADTF_OpenCV Helper,但这只会给我带来更多错误。

我正在使用的当前代码是这样的:

if (!outputImage.empty())
        {
            
            // write to pin
            writeMatToPin(*m_pWriterVideo, outputImage, m_pClock->GetStreamTime());
        }

void writeMatToPin(adtf::streaming::cSampleWriter& writer, const cv::Mat& outputImage, tTimeStamp streamTime)
{
    //create write buffer
    adtf::ucom::object_ptr<adtf::streaming::ISample> pWriteSample;

    if (IS_OK(adtf::streaming::alloc_sample(pWriteSample, streamTime)))
    {
        adtf::ucom::object_ptr_locked<adtf::streaming::ISampleBuffer> pWriteBuffer;
        if (IS_OK(pWriteSample->WriteLock(pWriteBuffer, outputImage.cols * outputImage.rows * outputImage.channels())))
        {
            pWriteBuffer->Write(adtf::base::adtf_memory_buffer<void, tSize>((void*) outputImage.data, 
                outputImage.cols * outputImage.rows * outputImage.channels()));           
        }
    }

    writer << pWriteSample << adtf::streaming::flush << adtf::streaming::trigger;
}

4

0 回答 0