質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

解決済

1回答

771閲覧

xcode7.3.1OpenCVでUIImageToMatがエラーになってしまう

takomeshi

総合スコア7

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2017/10/03 14:38

環境: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. } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のように、直接UIImageToMatとMatToUIImageの定義を
プロジェクトに取り込めばビルドは通るようになると思います。

XCode8 + OpenCV3.1.1以降のUIImageToMat,MatToUIImageでMach-O Linker Error

もう少し良い方法があれば良いのですが・・・

投稿2017/10/03 15:53

編集2017/10/03 15:54
tama2015

総合スコア63

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takomeshi

2017/10/07 02:58

とりあえずこの方法でちゃんと動きました、ありがとうございます! 中身がなかったんですね。気づきませんでした…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問