0

ここからOpenCV iOS フレームワークをダウンロードし、iOS 6 で正常に動作するようにしましたが、iOS 5.0 ではいつでも次のように呼び出します。

self.videoCamera = [[CvVideoCamera alloc] initWithParentView:self.imageView];

このチュートリアルから、次のエラー メッセージが表示されます。

dyld: lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic
  Referenced from: /var/mobile/Applications/8ADDFB67-97CE-4F6B-94B5-BD2548E0E6DD/MyApp.app/MyApp
  Expected in: /usr/lib/libobjc.A.dylib

dyld: Symbol not found: _objc_setProperty_nonatomic
  Referenced from: /var/mobile/Applications/8ADDFB67-97CE-4F6B-94B5-BD2548E0E6DD/MyApp.app/MyApp
Expected in: /usr/lib/libobjc.A.dylib

最新版はiOS 6のみですか?iOS 5 に相当するものはありますか?

4

1 に答える 1

4

この Q&A を参照してください。

http://answers.opencv.org/question/4767/build-opencv-for-ios-5/

最新のソースに問題があるようで、最新のビルド済みフレームワーク (2.4.3) を使用することをお勧めします。

そうは言っても、先週現在のソースからビルドしたバージョンがあり、ios6.0、5.1、および 5.0 で正常に動作しています (こちらこちらの github プロジェクトを参照してください) 。

しかし、このフレームワークであなたが指摘したビデオの例を試してみると、同じエラーが発生します。

したがって、使用しようとしているopenCVの機能に正確に依存しているようです....

アップデート

2.4.3 を試したところ、同じエラーが発生しました。1 つのバージョン 2.4.2 に戻しても、 が存在しないため役に立ちません<opencv2/highgui/cap_ios.h>。このファイルは、クラスとデリゲート プロトコルを宣言するため、このファイルCvVideoCameraがないと、この例を実行できません。興味深いことに、cap_ios.hC ++であるopenCVの残りの部分とは異なり、Objective-Cクラス宣言です...したがって、この特定の機能はios6でのみ機能する可能性があります

update2

OK、最新のソースからのopenCVの最近のビルドでなんとか実行できました。

1 / これらのビルド前のソース ファイルをプロジェクトにコピーします。

opencv/モジュール/highgui/src/

cap_ios_abstract_camera.mm
cap_ios_photo_camera.mm
cap_ios_video_camera.mm
cap_ios.h

2 / 3 つの .mm ファイルで次の行を変更します。

#import "opencv2/highgui/cap_ios.h"
#include "precomp.hpp"

に:

#import "cap_ios.h"
// #include "precomp.hpp"

2 / viewController の変更で

#import <opencv2/highgui/cap_ios.h>

#import "cap_ios.h"

それだけです...おそらく他に1つまたは2つの微調整がありますが、5.1の展開ターゲットで実行するにはそれだけで十分だと思います。

于 2013-01-08T18:29:46.900 に答える