【Swift】OpenCVを使ってみる 2 〜バージョンを表示〜
この記事は
【Swift】OpenCVを使ってみる 1 〜導入編〜 - 茶漬けの技術メモ
こちらの続きとなっております。
アプリでOpenCV のバージョンを表示する。
OpenCV は C++ で書かれたライブラリなので、Swift から直接呼び出すことはできません。
なので、Objective-C++ でOpenCV を使ったラッパークラスを作成し、Swift から呼び出す。という構成にしていきます。
Objective-C++ ファイルの作成
File → New → New File から Cocoa Touch Class を選択し、OpenCVWrapper クラスを作成します。
すると、Bridging-Header ファイルを作成するか聞かれるので、作成するボタンをクリック。プロジェクト名Swift-Bridging-Header.hファイルができていると思います。
Bridging-Header ファイルは「Objective-CとSwiftを同プロジェクトで共存させるためのもの」という認識で問題ないと思います。
Objective-C++ を書くために、OpencvWrapper の拡張子を .mm に変更し、storyboard に表示用のラベルを追加し、
やっとこれから、コードを書いていきます!!
OpecvWrapper.mm
#import "OpenCVWrapper.h" #import <opencv2/opencv.hpp> @implementation OpenCVWrapper +(NSString *) openCVVersionString { return [NSString stringWithFormat: @"openCV Version %s", CV_VERSION]; } @end
OpencvWrapper.h
#import <UIKit/UIKit.h> @interface OpenCVWrapper : NSObject // funciton to get opencv version +(NSString * ) openCVVersionString; @end
プロジェクト名Swift-Bridging-Header.h
#import "OpenCVWrapper.h"
ViewController.swift
import UIKit class ViewController: UIViewController { @IBOutlet weak var openCVVersionLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. openCVVersionLabel.text = OpenCVWrapper.openCVVersionString() } }
これで、アプリを実行すると、OpenCV のバージョンが画面に表示されていると思います。
今回は以上です!
次は、カラー画像をグレースケールに変換してみようと思います!!
続きはこちら