2017-08-24 35 views
0

我正在開發一個項目來提高我在OpenCV方面的技能,因爲我是新手,所以缺乏很多知識。在我的項目中,我檢測到圖像上的臉部,裁剪臉部區域,將其轉換爲灰度,使用LBP並使用calcHist計算LBP圖像的直方圖。OpenCV - 從C++打開一個XML文件到Python

我保存了所有這些直方圖使用FileStorage as .xlm文件。以上所有,在Visual Studio上使用C++。現在我有一些代碼與機器學習算法,如SVM,神經網絡,knn等,但所有這些代碼是在Python 3

下一步我心目中,就是要把所有這些.xml文件和加載它們在一個Python腳本,再次使用OpenCV的使用它們,但我不能設法做到這一點,在過去幾天。

最簡單的事情,我想測試一下(製成2017年七月後):

import cv2 

fs = cv2.FileStorage("aa048t2aaunaff001.png_olbp.xml", cv2.FILE_STORAGE_READ) 

fn = fs.getNode("Camera_Matrix") 
print (fn.mat()) 

問題在這裏:

1 FS沒有一個成員「getNode 」。我在這裏做了什麼錯誤的安裝? 2.打印輸出「無」。

XML文件加載:https://drive.google.com/open?id=0B2TTkSDC13uQRk8tZlgxengzNW8

OpenCV的:3.3.0,巨蟒:3.6.2

找不到其他任何工作,所以我貼我試過最簡單的事情。感謝您的閱讀,任何幫助表示讚賞。

+0

試試'help(fs)'。看着這個,我會說'fs ['Camera_Matrix']'是你想要的。 –

+0

似乎工作。 「幫助(FS)」確實有幫助。感謝您的回答。 –

回答

1

由於我的帖子回答了大約3個月前,但沒有提供正式答案,我會回答我自己的問題。

我成功打開了我想要的文件,但我嘗試訪問不存在的矩陣。我將fn = fs.getNode("Camera_Matrix")更改爲fn = fs.getNode("my_histrogram"),並且OpenCV成功加載了直方圖。