[問題] Java字串長度限制問題
各位前輩好
我最近想做一個android結合opencv的人臉偵測程式
我研究過opencv的facedetect.cpp範例
打算把它搬到android上執行
可是我遇到一個問題
在這個範例裡需要載入haarcascade_frontalface_alt.XML的人臉訓練結果
我把XML的內容存到String後用Log印出
發現不能完整顯示
只讀到4千多個字元就斷尾了
但是在TextView卻可以
而且用length檢驗字串長度也是完整的
這個XML的字串長度高達676709
我覺得是Java的String型別可能有長度限制的關係
簡單來說
我可以用TextView直接印出完整資料
但無法在程式裡運用這個字串的資料
想請問各位有沒有遇過類似狀況以及如何解決
我的開發環境是 Android Studio 2.0 + OpenCV4Android 3.0.0
可能有些人會說可以用JNI
但是我在Android Studio裡嘗試寫OpenCV的JNI一直失敗
最多只能在我的Android 4.0.3的實體手機能執行
模擬器或5.0的手機都不能跑
所以我才會想用純Java來寫
感謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.243.46
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1461652182.A.716.html
→
04/26 16:53, , 1F
04/26 16:53, 1F
→
04/26 17:01, , 2F
04/26 17:01, 2F
原來是Log的問題
可是這個String似乎在程式裡也沒辦法使用欸
在OpenCV的人臉偵測範例裡要將人臉訓練結果以String的方式
載入到CascadeClassifier形態的變數
我做到這一步程式就會崩潰了
我有試過用比較短的XML匯入就沒事(隨便找一個跟OpenCV無關的XML)
當然結果是無法使用但程式不至於崩潰
可是用OpenCV提供的訓練結果就不行
所以我想說是不是XML匯入到String的時候資料是不完整的
因而導致程式崩潰
我有試過直接將XML的內容複製貼上到String裡
結果完全不能編譯
並且提示字串長度過長
不知到跟我的問題有沒有相關
※ 編輯: ab790815 (59.120.243.46), 04/27/2016 09:07:38
→
04/27 09:32, , 3F
04/27 09:32, 3F
→
04/27 09:38, , 4F
04/27 09:38, 4F
→
04/27 09:55, , 5F
04/27 09:55, 5F
→
04/27 09:57, , 6F
04/27 09:57, 6F
→
04/27 09:58, , 7F
04/27 09:58, 7F
→
04/27 10:02, , 8F
04/27 10:02, 8F
→
04/27 10:04, , 9F
04/27 10:04, 9F
→
04/27 10:05, , 10F
04/27 10:05, 10F
→
04/27 10:06, , 11F
04/27 10:06, 11F
→
04/27 10:06, , 12F
04/27 10:06, 12F
這樣看起來我似乎是搞錯方向了
應該是不String的問題
而是我應該要先了解OpenCV的CascadeClassifier該如何使用
可能是我給的字串內容是有誤的才導致崩潰
感謝兩位前輩指教
我再嘗試看看
※ 編輯: ab790815 (59.120.243.46), 04/27/2016 10:31:09
-------------------------------------------------------------------
我找到問題了
我真的是搞錯CascadeClassifier的用法了
要塞給CascadeClassifier是XML的路徑
而不是內容
※ 編輯: ab790815 (59.120.243.46), 04/27/2016 13:52:17