簡體   English   中英

opencv\modules\core\src\persistence.cpp:2697: 錯誤: (-27) NULL 或 function cvOpenFileStorage 中的空緩沖區

[英]opencv\modules\core\src\persistence.cpp:2697: error: (-27) NULL or empty buffer in function cvOpenFileStorage

我正在嘗試運行人臉檢測應用程序,但出現以下錯誤:

Unexpected Standard exception from MEX file.
What() is:..\..\..\..\opencv\modules\core\src\persistence.cpp:2697: error: (-27)
NULL or empty buffer in function cvOpenFileStorage

如果您正在使用haarcascade_frontalface_default.xml,請檢查xml文件內容。

前3行應該是:

<?xml version="1.0"?>
<!--
    Stump-based 24x24 discrete(?) adaboost frontal face detector.

我無意中下載了鏈接到haarcascade_frontalface_default.xml文件而不是xml本身的html,並且遇到了同樣的錯誤。

您應該提供一些代碼和信息。但是錯誤表明它無法訪問haarcascade文件。 我建議你確保你的代碼所在的文件夾中有“xml”(例如“ViewController.mm”)並檢查權限。 另外假設您使用的是Objective-c或swift:

1 - 檢查文件是否在Xcode項目中; 而且,如果是的話,

2 - 檢查它是否包含在所選目標下的“復制包資源”階段(在正常Xcode窗口布局左側的項目樹視圖中),如果是,

3 - 查看生成的應用程序包內部(找到您的產品,右鍵單擊,選擇'在Finder中顯示',從Finder中右鍵單擊應用程序並選擇'顯示包內容',然后在那里查找您的文件)以確保在那。

我有同樣的問題,然后我弄清楚是什么問題

第一的

添加文件 haarcascade_frontalface_default.xml 到xcode項目

確保在使用以下選項添加 xml 文件時:

  1. 目的地:如果需要復制項目[檢查]
  2. 添加文件夾:創建文件夾引用[檢查]
  3. 添加到目標:您的項目目標 [檢查]

第二

在你的 Wrapper.mm 文件中將這段代碼添加到你的 obj-c function 中:

const NSString* cascadePath = [[NSBundle mainBundle]pathForResource:@"haarcascade_frontalface_default" ofType:@"xml"];

或者如果您想加載 xml 文件,請使用以下代碼:

cv::CascadeClassifier classifier;
const NSString* cascadePath = [[NSBundle mainBundle]pathForResource:@"haarcascade_frontalface_default" ofType:@"xml"];
classifier.load([cascadePath UTF8String]);

這實際上解決了我的問題,無論如何這個問題已經被質疑了很長時間,但我希望遇到這個問題的人可以得出這個答案並幫助他們像我一樣解決他們的問題,加油。

暫無
暫無

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

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