Flutter 故障排除: libc++abi: terminating with uncaught exception of type cvflann

2022/10/10 Flutter

問題

最近正開發 Flutter 使用 Dart FFI 呼叫 OpenCV C++ 程式。並實作 Features2D-Homography 物件匹配,專案中並使用到 SIFT 特徵點提取言算法以及透過 knnMatch 計算兩張圖片相近的特徵點。只不過開發在電腦的 Android 與 iOS 模擬器運行都一切正常,但是在 iOS 實機運行時有閃退問題。在 Xcode 編譯器上提示這一行程式碼導致運行中斷:

matcher->knnMatch( descriptors1, descriptors2, knn_matches, 2 );

詳細 log 錯誤訊息如下:

libc++abi: terminating with uncaught exception of type cvflann::anyimpl::bad_any_cast

解決辦法

在 c++ 檔案中必須移除 #import opencv2/opencv.hpp 標頭,並手動添加專案中需要用到的標頭檔。在 SIFT 例子中需要引入:

#import <opencv2/imgcodecs.hpp>
#import <opencv2/calib3d.hpp>
#import <opencv2/features2d.hpp>
#import <opencv2/imgproc/imgproc.hpp>

OpenCV 版本 4.5.2

Reference

鼓勵持續創作,支持化讚為賞!透過下方的 Like 拍手👏,讓創作者獲得額外收入~
版主10在2020年首次開設YouTube頻道,嘗試拍攝程式教學。想要了解更多的朋友歡迎關注我的頻道,您的訂閱就是最大的支持~如果想學其他什麼內容也歡迎許願XD
https://www.youtube.com/channel/UCSNPCGvMYEV-yIXAVt3FA5A

Search

    Table of Contents