簡體   English   中英

opencv將數據從* Mat復制到Mat

[英]opencv copy data from a *Mat to a Mat

我有兩個cv::Mat對象:

cv::Mat *frameLeftRemap;
cv::Mat frameLeft2;

數據從攝像機流到* frameLeftRemap中。 我需要將數據復制到frameLeft2,然后刪除frameLeftRemap,以避免我看到的幀偽像。 (這是由相機制造商支持部門建議的。)

函數是:

  void ProcessImageLeft(AVT::VmbAPI::FramePtr pFrame)
    {
        VmbUchar_t *pBuffer;
        VmbUint32_t FrameWidth;
        VmbUint32_t FrameHeight;


        //prepare frame information:
        pFrame->GetWidth(FrameWidth);
        pFrame->GetHeight(FrameHeight);
        pFrame->GetImage(pBuffer);
        //edited
        Mat1b imageL(FrameHeight, FrameWidth, (uchar*)pBuffer);

        cv::remap(imageL, *frameLeftRemap, mx1, my1, cv::INTER_LINEAR);

        frameLeft2 = frameLeftRemap->clone(); 

        //frameLeftRemap->copyTo(frameLeft2);


        cv::imshow("right", frameLeft2);
        cv::waitKey(1);
        delete frameLeftRemap;


    }

copyTo和clone都給出一個錯誤:

this is nullPtr. read access violation

我在這里做錯了什么?

frameL= frameLeftRemap->clone(); 應該可以正常工作。 看來您在frameL有問題。 嘗試使用cv::imshowcv::imwrite顯示它,以確保在克隆之前損壞它。 然后解決原始問題。 如果您發布了代碼,我們將為您提供更多幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM