前提・実現したいこと
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); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。