簡體   English   中英

CascadeTraining.exe發生緩沖區溢出錯誤

[英]A buffer overrun error happened at CascadeTraining.exe

我正在訓練cascadeclassifier並且發生了一個奇怪的問題。 它發生在tempStage->write( fs, Mat() ); 在以下代碼中。

        CvCascadeBoost* tempStage = new CvCascadeBoost;
        // save current stage
        char buf[10];
        sprintf(buf, "%s%d", "stage", i );
        filename = dirName + buf + ".xml";
        FileStorage fs( filename, FileStorage::WRITE );
        if ( !fs.isOpened() )
        {
            cout << "Current stage can not be written, because file " << filename
                    << " can not be opened." << endl;
            return false;
        }
        fs << FileStorage::getDefaultObjectName(filename) << "{";
        tempStage->write( fs, Mat() );
        fs << "}";

OpenCV錯誤是

OpenCV Error: Unspecified error (No element name has been given) in unknown func
tion, file D:\Lib\OpenCV_Lib_2.4.6\include\opencv2/core/ope
rations.hpp, line 2908

有什么事嗎 當我檢查fs時,如附圖所示,它有很多無法讀取內存消息的信息。

謝謝

在此處輸入圖片說明

CvCascadeBoost::write的簽名是:

void CvCascadeBoost::write( FileStorage &fs, const Mat& featureMap ) const

並且您向其傳遞了一個空矩陣,這應該是錯誤的。

暫無
暫無

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

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