環境:MacOSX 10.11.6
xcode7.3.1
cocoa pods1.3.1
iPhone5 10.1.1
opencvをcocoa podでプロジェクトにインストールして画像処理をしようと思い,試しに動かしてみたところ、エラーを吐かれてしまいました.
調べたのですが解決方法がよくわかりません...
UIImagaToMatとMatToUIImageがエラーになっているので,ios.hあたりがおかしいとは思うのですが...
フレームワークをダウンロードしてきて解凍して...の方法でうまくいかなかったのでcocoapodを使ってみた次第です.
何か失念していたり、間違っているところなどあればご指摘願いたいです.
参考
iOs + SwiftでOpenCVを使う
https://qiita.com/tkw_tech/items/d2a81f42f07e203c217f
OpenCV for iOs を使ってみた
http://ytskmt14.hateblo.jp/entry/2016/04/08/175823
###発生している問題・エラーメッセージ
Undefined symbols for architecture x86_64: "MatToUIImage(cv::Mat const&)", referenced from: -[CVfile change:] in CVfile.o "UIImageToMat(UIImage const*, cv::Mat&, bool)", referenced from: -[CVfile change:] in CVfile.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
###コード
CVfile.mm
#import "opencv2/opencv.hpp" #import "opencv2/imgcodecs/ios.h" #import <Foundation/Foundation.h> #import "UIKit/UIKit.h" #import "cvtest-Bridging-Header.h" @implementation CVfile :NSObject -(UIImage *)change:(UIImage *)img{ cv::Mat inp,outp; UIImageToMat(img, inp); cv::cvtColor(inp, outp, CV_BGR2GRAY); UIImage *gray = MatToUIImage(outp); return gray; } @end
ViewColntoroller.swift
import UIKit import AVFoundation class ViewController: UIViewController { @IBOutlet var buton: UIView! @IBOutlet var imView: UIImageView! override func viewDidLoad() { super.viewDidLoad() imView.image = UIImage(named: "sample.jpg"); } @IBAction func tapButton(sender: AnyObject) { let img = imView.image let Cv = CVfile() let GRAYimg = Cv.change(img); imView.image = GRAYimg; } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/07 02:58