簡體   English   中英

讀取 opencv_face.LBPHFaceRecognizer.getHistograms() 中的值

[英]Reading values in opencv_face.LBPHFaceRecognizer.getHistograms()

我正在嘗試使用 android 中的 open_cv 庫。 我以前從未研究過它,所以這可能是一個非常基本的問題。

我的識別器活動中有一個opencv_face.LBPHFaceRecognizer object。 我的要求是讀取以前存儲的人臉的直方圖值。

            opencv_face.LBPHFaceRecognizer mFaceRecognizer = = createLBPHFaceRecognizer(2, 8, 8, 8, 95);
            File file = new File(RegisterActivity.getFilePath(mContext));
            mFaceRecognizer.load(file.getAbsolutePath());


            opencv_core.MatVector vector = mFaceRecognizer.getHistograms();
            for (int i = 0; i < vector.size(); i++) {
                opencv_core.Mat mat = vector.get(i);
                opencv_core.Size size = mat.size();
                for (int j = 0; j < size.height();j++)
                    for (int k = 0; k < size.width(); k++) {
                        // Here I want to ready the values (which would be same as the values in file am initializing mFaceRecognizer with) of these matrices but I am not able to find any appropriate method to do so.
                    }
            }

請幫助我完成所需的方法,我嘗試了很多資源並瀏覽了文檔,但是作為初學者,我認為我遺漏了一些東西。

我無法在 mat object 中找到任何版本的 .get() 或 .at() 方法。

任何幫助將不勝感激。 提前致謝。

我能夠通過將 opencv_core.Mat 轉換為 opencv_core.CvMat object 來讀取這些值。 我不知道為什么這個 object 被標記為已棄用,但這對我來說很好:

            double[][] input = new double[(int)vector.size()][vector.get(0).size().width()];
            for (int i = 0; i < vector.size(); i++) {
                opencv_core.Mat mat = vector.get(i);
                (new opencv_core.CvMat(mat)).get(input[i]);
            }

此處的輸入變量現在具有所有直方圖的所需值。

暫無
暫無

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

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