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

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

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

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2775閲覧

opencvを使って斜めから撮った写真を真っ直ぐ表示したい

29507-01

総合スコア46

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/10/27 01:56

前提・実現したいこと

opencvを使って斜めから撮った写真を真っ直ぐ表示したいのですが、エラー表示が出ます。
どなたかご教授お願いします。

発生している問題・エラーメッセージ

// ホモグラフィ算出 cv::Mat status; cv::Mat H = cv::findHomography(cv::Mat(m_selected_pnts), cv::Mat(dst_pnts), status); cv::Mat inputImg; UIImageToMat(image, inputImg); cv::Mat warpImg; cv::warpPerspective(inputImg, warpImg, H, inputImg.size()); return MatToUIImage(warpImg);

}

findHomography ,warpPerspectiveの箇所で
No member named 'findHomography' in namespace 'cv'
No member named 'warpPerspective' in namespace 'cv'
というエラーになります。

podfileは作成しています

Pods for Homography

platform :ios, "9.0" pod 'OpenCV', '2.4.9'
### 該当のソースコード ```swift4 ViewController.mm #import "ViewController.h" #include <opencv2/core/core_c.h> #import "opencv2/highgui/ios.h" #include <vector> @interface ViewController () { std::vector<cv::Point2f> m_selected_pnts; } // 入力画像を射影変換する - (UIImage *)projectiveTransForm:(UIImage *)image { // 対象となる領域 CGFloat min_x = FLT_MAX; CGFloat max_x = FLT_MIN; CGFloat min_y = FLT_MAX; CGFloat max_y = FLT_MIN; for(auto it = m_selected_pnts.begin(); it != m_selected_pnts.end(); ++it){ min_x = MIN(min_x, it->x); max_x = MAX(max_x, it->x); min_y = MIN(min_y, it->y); max_y = MAX(max_y, it->y); } std::vector<cv::Point2f> dst_pnts; dst_pnts.push_back(cv::Point2f(min_x, min_y));// 左上 dst_pnts.push_back(cv::Point2f(min_x, max_y));// 左下 dst_pnts.push_back(cv::Point2f(max_x, max_y));// 右下 dst_pnts.push_back(cv::Point2f(max_x, min_y));// 右上 // ホモグラフィ算出 cv::Mat status; cv::Mat H = cv::findHomography(cv::Mat(m_selected_pnts), cv::Mat(dst_pnts), status); // 画像が回転しているので修正 UIGraphicsBeginImageContext(image.size); [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); cv::Mat inputImg; UIImageToMat(image, inputImg); cv::Mat warpImg; cv::warpPerspective(inputImg, warpImg, H, inputImg.size()); return MatToUIImage(warpImg); }

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

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

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

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

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

guest

回答1

0

自己解決

#import <opencv2/opencv.hpp>

追加する事で解決しましたが
実機でテストする時以下のエラーが表示されました。
エラーメッセージ

Homography/Homography/Pods/OpenCV/opencv2.framework/opencv2(cap_ios_photo_camera.o)'にはビットコードが含まれていません。 ビットコードを有効にして(Xcode設定ENABLE_BITCODE)再構築するか、ベンダから更新されたライブラリを入手するか、このターゲットのビットコードを無効にする必要があります。

投稿2018/10/28 02:31

29507-01

総合スコア46

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問