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

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

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

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

Xcode

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

Swift

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

Q&A

解決済

2回答

1316閲覧

Xcode内でOpencvを用いてARを作成したい。Use of undeclared identifier 'CV_RGBA2RGB'; did you mean 'COLOR_RGBA2エラー解消

himel

総合スコア0

OpenCV

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

Xcode

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

Swift

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

0グッド

0クリップ

投稿2021/08/20 06:06

OpenCVを用いてARをXcodeで作ろうとしている初心者です。とあるサイトを参考にさせていただきながらやっていたのですが、OpencvWrapper.mmの” cvtColor(mat, mat, CV_RGBA2RGB);”のところで Use of undeclared identifier 'CV_RGBA2RGB'; did you mean 'COLOR_RGBA2RGB'? というエラーが出てしまいました。
ネットでエラーを調べたのですが、バージョンを更新やらスペルの確認とでたのですが、エラーが解消しない状態です。ご教授いただけると幸いです。

参考にさせていただいたサイト

https://qiita.com/Motonaga/items/d090826de806a2350ee2

//OpencvWrapper.mm #import "OpencvWrapper.h" #import <opencv2/opencv.hpp> #import <opencv2/imgcodecs/ios.h> #import <opencv2/aruco.hpp> #import "OpencvWrapper.h" using namespace cv; using namespace std; @implementation OpencvWrapper - (UIImage *)image { return _image; }; - (NSDictionary *)markerDict { return _markerDict; } - (void)detectARMarker:(UIImage *)input_img { Mat mat; UIImageToMat(input_img, mat); cvtColor(mat, mat, CV_RGBA2RGB); vector<int> ids; vector<vector<Point2f> > corners; // ArUcoモジュールに事前定義されたARマーカーの辞書を取得する cv::Ptr<aruco::Dictionary> dictionary = aruco::getPredefinedDictionary(aruco::DICT_6X6_250); // detectMarkers でARマーカーを検出する // ids に ARマーカーのID、corners に ARマーカーの座標を格納する aruco::detectMarkers(mat, dictionary, corners, ids); // mat (元の画像) に 検出されたARマーカーを描画する if (ids.size() > 0) aruco::drawDetectedMarkers(mat, corners, ids); // draw bounding boxes. // Mat型の画像を Swiftで扱えるUIImage型に変換 UIImage * output_img = MatToUIImage(mat); _image = output_img; // ids と corners を {id<NSNumber>: corner<NSArray[CGPoint]>} の形式の辞書に変換してmutableDictに格納する NSMutableDictionary *mutableDict = [@{} mutableCopy]; for (int i=0; i<ids.size(); i++) { auto id = ids[i]; NSNumber* markerId = [NSNumber numberWithInt:id]; NSMutableArray* corner = [[NSMutableArray alloc] initWithCapacity:corners[i].size()]; for (auto point: corners[i]) { [corner addObject:[NSValue valueWithCGPoint:CGPointMake(point.x, point.y)]]; } mutableDict[markerId] = corner; } _markerDict = mutableDict; } @end

### イメージ説明

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

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

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

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

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

guest

回答2

0

自己解決

書き直したらエラーがなくなりました

投稿2021/08/22 03:19

himel

総合スコア0

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

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

0

単に OpenCV のバージョンが,参考にしているサイトが使ってるのと異なっているのではないでしょうか.

(昔は CV_RGBA2RGB だったのが,あるバージョンから cv::COLOR_RGBA2RGB に変わった)

Use of undeclared identifier 'CV_RGBA2RGB'; did you mean 'COLOR_RGBA2RGB'? 

とか親切に「こっちじゃないの?」的なメッセージが出てますし,COLOR_RGBA2RGB にしてみればよいのではないかと.

投稿2021/08/20 07:20

編集2021/08/20 07:24
fana

総合スコア11708

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

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

fana

2021/08/20 07:23

OpenCVのどっかのバージョンで, CV_XXX みたいな名前の定数群だったのが cv::YYY_XXX みたいな cv名前空間下の名前に変更になった.
himel

2021/08/21 05:32

書き直したらエラーがなくなりました。ありがとうございました。
fana

2021/08/22 00:28

問題が解決したなら適切にこの質問を閉じてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問