• 締切済み

iOSでopenCVサンプル実行時のエラー

いつも利用させていただいています。 現在opencvを使ってipadのアプリを作ろうとしていて下記のサイトに辿りつきました。 http://niw.at/articles/2009/03/14/using-opencv-on-iphone/ja このサイトからリンクされている下記のサンプルソースをダウンロードしてipadの画面一杯に表示するためにtarget device familyを「iphone/ipad」に変更して実行した所、OpenCVTestViewController.mの191行目のshowInView:self.viewでエラーが発生しています。 ダウンロードサイト http://github.com/niw/iphone_opencv_test/ エラー内容 「Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: view != nil'」 実行ソース一部抜粋 UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Use Photo from Library", @"Take Photo with Camera", @"Use Default Lena", nil]; actionSheet.actionSheetStyle = UIActionSheetStyleDefault; actionSheetAction = ActionSheetToSelectTypeOfSource; [actionSheet showInView:self.view]; [actionSheet release]; 当方の環境はxcode4のiOS4.3です。 元々のソースがiphone用なのでipadで、actionsheetの表示を行えるようにソースを変更する必要があると思うのですがうまく動作しません。 cancelButtonTitleにnilを入れるなどの対策はしてみましたがエラーはなくなりません。 解決策がわかる方いらっしゃいましたら、お教え願います。

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.4

>作り方があってるかわかりませんが、iphoneアプリプロジェクトを新規で作成して universal は window-base で。

tomokidayo
質問者

補足

window-baseですね!作って確かめてみます。 またご報告します!

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.3

>ターゲットデバイスがiphoneだけだと動いている ははぁ なるほどね ターゲットを変更してるだけで iPadで起動した時の処理が書いてないんじゃない? 何言ってるか判らなかったら なんでも良いから iPhone/iPad universal でプロジェクトを1つ新規で作ってごらん。 それを見ながら「え こんなことやってない」っていうのを自分のに取り込んだら良いよ。 やれば多分判るんじゃないかな。「あ、確かにこれはiPadでview無いって言われるよ」って。

tomokidayo
質問者

補足

回答ありがとうございます! 作り方があってるかわかりませんが、iphoneアプリプロジェクトを新規で作成して、 deviceをipadに変更した所、ipadフォルダが自動作成され、xxx-ipad.xibというファイルが作られていました。今回のプロジェクトも確認してみた所同じようなファイルができていたのまでは確認できました。実行ファイルのソースはiphone用しかないのでこの後にipad用のソースを作るか、iphone用のソースにipadとiphoneの分岐処理を入れる必要があるという意味であってますでしょうか? 実際にエラーになっている処理の直前にselfとself.viewのログを入れて出力してみたのですが、view自体はありそうな感じがするのですが、それ事態も勘違いでしょうか? 実際のログ iphone実行時 2011-09-29 11:27:48.615 OpenCVTest[5928:b303] self=<OpenCVTestViewController: 0x5d10820>self.view=<UIView: 0x5d10a40; frame = (0 20; 320 460); autoresize = W+H; layer = <CALayer: 0x5d10c30>> ipad実行時 2011-09-29 11:21:35.366 OpenCVTest[5898:b303] self=<OpenCVTestViewController: 0x4f44be0>self.view=<UIView: 0x4f44dc0; frame = (0 20; 768 1004); autoresize = W+H; layer = <CALayer: 0x4f45000>>

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.2

引用コード中3行目: actionSheetAction = ActionSheetToSelectTypeOfSource; これは書き写し間違い?

tomokidayo
質問者

補足

調べてみた所ヘッダーファイルで下記のように設定してありますので、間違いではないと思います。ここだけ抜粋するとわかりにくいですね。申し訳ございません。 typedef enum { ActionSheetToSelectTypeOfSource = 1, ActionSheetToSelectTypeOfMarks } OpenCVTestViewControllerActionSheetAction; @interface OpenCVTestViewController : UIViewController <UIActionSheetDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate> { IBOutlet UIImageView *imageView; OpenCVTestViewControllerActionSheetAction actionSheetAction; UIProgressHUD *progressHUD; SystemSoundID alertSoundID; }

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

self に view が無いとかいうオチは無いよね?

tomokidayo
質問者

補足

回答ありがとうございます。 ターゲットデバイスがiphoneだけだと動いているのでそんなことはないと思うのですが、ipadだとviewの概念が変わりますか?

関連するQ&A

  • OpenCVで処理した画像の表示方法。

    VC++でOpenCVを使って画像処理を研究中です。 OpenCVでの画像の表示は、 char *filename = "lena.jpg"; image = cvLoadImage(filename, CV_LOAD_IMAGE_COLOR); cvNamedWindow ("lena", CV_WINDOW_AUTOSIZE); cvShowImage ("lena",image); で出来るということは分かりました。 しかし、MFCで作ったフォームのピクチャーボックスへの表示の仕方が分かりません。 画像処理は実行ボタンでpictureBox1の元の画像をpictureBox2に表示させようと考えております。 回答のほど、どうぞよろしくお願いいたします。 また、分かりやすいサイトなどありましたらお願いします。

  • OpenCVを使ったiPhoneアプリ開発!

    OpenCV を使ったiPhoneアプリを Xcode 3.1.4 で作りたいのですが,どうやって環境を整えればいいか分かりません??助けて下さい!! PC全くの素人です!授業でC++をVisual Studioで一通り扱ったくらいです. 現在, Mac OS X 10.5.8 を利用していて, Xcode 3.1.4 と iPhone SDK 3.1.3 をインストールしました. 今回,OpenCV を使ったiPhoneアプリを Xcode 3.1.4 で作りたいのですが, どこからOpenCVのライブラリやリソース等を入手し,どのディレクトリにいれ,どんなセッティングをすればいいのか全く分かりません. このサイトを見ますと, 「XcodeでOpenCV開発」 http://d.hatena.ne.jp/MineAP/20080112/1200125226 「ヘッダ検索パス」や「アーキテクチャ」の設定が何をしている作業のことか分からないのと,そもそもどのOpenCVライブラリをダウンロードしたらいいのか,また,Macを使っているのにIntel向けのアプリにしてしまっていいのか(最終的にはiPhoneで使えるアプリを作りたいですが,Macでも動いてほしい)がさっぱりです. また,こちらのサイトの方には 「iPhoneでOpenCVを使う方法」 http://niw.at/articles/2009/03/14/using-opencv-on-iphone/ja iPhoneでOpenCVを使う方法が書いてあるのですが,扱っているソースコードとリソースのバージョンがOpenCV 2.2.0、iOS SDK 4.3、Xcode4 で私の環境と異なっているのと,gitおよび,githubが何なのかWikipediaで調べても全く分からず,貼ってあるリンクのファイルがなんの為のものかも分からず,お手上げ状態です. プログラムについては文法はC++に関して一通りやりましたが,構造や仕組みなどに関しては全く駄目なので,なるべく詳しい解説をして下さると大変助かります!!!

    • 締切済み
    • Mac
  • objective-C のOCR認識のサンプル

    http://blog.isana.net/2014/08/ios.html 上記サイトのサンプルコードをそのままコピーしたのですが、以下のエラーが出てしまうのですがなぜでしょうか。 No visible @interface for "UIView" declares the selector "setImage" 下記コードの、// イメージビューに画像をセットとコメントしてある部分です。回答をお願いします // 中略 // カメラボタン押下 - (IBAction)tappedCamera:(id)sender { UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; // デリゲート指定 [imagePickerController setDelegate:self]; // トリミング指定 [imagePickerController setAllowsEditing:YES]; // カメラの使用有無を確認 if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]) { // カメラを指定 [imagePickerController setSourceType:UIImagePickerControllerSourceTypeCamera]; } else { // アルバムを指定 [imagePickerController setSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum]; } // コントローラ起動 [self presentViewController:imagePickerController animated:YES completion:nil]; } // コントローラ終了 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { // イメージをメモリに保存 self.selectedImage = [info objectForKey:UIImagePickerControllerEditedImage]; // イメージビューに画像をセット [self.imageView setImage:self.selectedImage]; // 親ビューへ戻る [self dismissViewControllerAnimated:YES completion:nil]; // テキストを空に [self.textView setText:nil]; // インジケータ開始 UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; spinner.center = CGPointMake(160, 240); spinner.hidesWhenStopped = YES; [self.view addSubview:spinner]; [spinner startAnimating]; // OCR実行 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 英語 : eng を設定 (日本語の場合は jpn を指定) Tesseract* tesseract = [[Tesseract alloc] initWithLanguage:@"eng"]; // OCRを実行する画像を設定 [tesseract setImage:self.selectedImage]; // OCR実行 [tesseract recognize]; // 実行結果をアラートビューで表示 dispatch_async(dispatch_get_main_queue(), ^{ // 結果をテキストビューに指定 [self.textView setText:[tesseract recognizedText]]; // インジケータ停止 [spinner stopAnimating]; }); }); }

  • MacへのOpenCVについて

    MacへのOpenCVについて 失礼します。 MacOSX10.6にOpenCVをインストールしている最中なのですが、問題が発生して先に進まなくなってしまい、困っています。 ちなみにこちらのサイト→http://keepkeptkept.seesaa.net/article/153200416.htmlを参考のさせていただいているのですが、3のところでつまづいてしまいました。 3.CMakeでのインストール (ver2.1 64bit or 32bit) まず、ソースファイルを入手するためにSubversionのインストール。 $ sudo port subversion 次に、cmakeのインストール。ちなみにcmakeはクロスプラットフォームのmakeのこと。 $ sudo port cmake そして、ソースファイルの入手。 $ svn co https://code.ros.org/svn/opencv/trunk/opencv ここまではうまく行くのですが、次の $ cv opencv cmakeを使ってビルドします。 を実行すると-bash: cv: command not foundと返されてしまいます。これはPATHが通っていないということなのかなと考えているのですが、解決方法がわかりません。 勉強不足でもうしわけないのですが、ご教授よろしくお願い致します。 * グレード

  • Mac OS X Snow LeopardでのOpenCVについて

    Mac OS X Snow LeopardでのOpenCVについて Mac初心者です。MacBookAir (Mac OS X 10.6)を使っています。 大学の卒業研究でiPhone4上でOpenCVを使うことになりました。 大まかにいうと、OpenCVのサンプルコードが実行できません。 現状は以下の通りです。 ・Xcode3.2.3のみでの簡易的なiPhoneアプリの作成は可能 ・X11(XQuartz 2.5.1)インストール済み ・MacPots 1.9.1 インストール済み ・Subversion 1.6.12 インストール済み ・MacPortsでCMakeをインストール済み ・MacPortsでOpenCV 2.1.1 インストール済み 参考にしたサイトは以下です。 http://d.hatena.ne.jp/tamakiii/20091125/1259172941 http://keepkeptkept.seesaa.net/article/153200416.html CMakeのインストールとOpenCVのビルドは下のサイトを参考にし、他は上のサイトを参考にしました。 サンプルコードのコンパイル後、どれをどのようにしたらサンプルコードを実行できるのかわからなかったため、 どこのサイトで見かけたか覚えていませんが、kmeans.cがあるフォルダで $ gcc -lcv -lhighgui kmeans.c と打ちましたところ、エラーが大量に出ました。(一番上のエラーはcv.h: No such file or directoryとなっています) また、別なサイトでみた $ python -c "import cv" を打つと、「ImportError: No module named cv」と表示され、実行できません。 パスが通っていないのかと思ったのですが、「.bash_profile」にいろんなサイトに書いてあるようにパスを追加してあります。 Mac初心者で、何をどうすればいいのか全くわかっていません。 情報が不足していると思いますが、何を掲載すればいいのかわからないため、 おっしゃっていただければ、逐次追加していきますのでよろしくお願いします。

  • OpenCVで画像を読み込みたい

    OpenCVを勉強しようと思い先日始めました。 http://chihara.naist.jp/opencv/?FrontPage 上記のサイトに掲載されている通りにVC++ 2008 EEで ・環境変数PATH ・インクルードファイル ・ライブラリファイル ・リンカ の設定をしました。 これでいざプログラムをコンパイルして実行すると何故か画像が読み込んでくれません。 これらの設定以外の他にするべきことがあるのでしょうか? いきなり出鼻を挫かれたので困っています。よろしくお願いします。 OS:XP SP2 開発環境:VC++ 2008 EE 実行したプログラム ---------------------------------------------------------------- #include "cv.h" #include "highgui.h" int main( int argc, char** argv ) { IplImage* img; char* filename = "abc.bmp"; if( argc == 2 && (img = cvLoadImage( filename, 1)) != 0 ) { cvNamedWindow( "Image view", 1 ); cvShowImage( "Image view", img ); cvWaitKey(0); // イベント処理を含む場合には,これが重要. cvDestroyWindow( "Image view" ); cvReleaseImage( &img ); return 0; } return -1; } ----------------------------------------------------------------

  • iOSアプリ開発

    iOSアプリ開発初心者です。 iPhoneアプリのソースコードをiPad用にコピーして実行すると、 iPadでの表示が左上にかたよってしまいますが、 全体に表示させる方法があるようならば教えてください。 全体に表示させる以外で、良い対処方法があれば、それでも構いません。 よろしくお願いいたします。

  • iPhoneアプリの開発についてです。

    UINavigationControllerのルートに紐づけられたBookMarkViewControllerというビューがあります。 このBookMarkViewControllerはテーブルビューで、 (1) BookMarkViewController *nextDir = [[BookMarkViewController alloc] init]; [self.navigationController pushViewController:nextDir animated:YES]; 上記のようなコードで、次々と画面遷移していきます。 また、BookMarkViewControllerには、 (2) BookMarkViewController *move = [[BookMarkViewController alloc] init]; move.isMove = YES; UINavigationController *nav = [self.storyboard instantiateViewControllerWithIdentifier:@"BookMarkView"]; [nav setViewControllers:[NSArray arrayWithObjects:move, nil]]; [self presentViewController:nav animated:YES completion:nil]; 上記のような内容のメソッドがあり、次々と画面遷移することのできる新たなUINavigationControllerをモーダル表現で表示します。 画面遷移する前のBookMarkViewControllerでは、上記のコードでうまくモーダルがでるのですが、(1)のメソッドを実行し新たに作り遷移したBookMarkViewControllerではなぜか、 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target <BookMarkViewController: 0x11822e070>.' というエラーが吐き出されうまくいきません。 (2)のメソッドで「nav」を生成した直後にnav.viewControllersをNSLogしてみたのですが、nullがかえされてしまいました。(成功した例では<BookMarkViewController ○○○>と、正常に表示されました) 誰かわかる方ご指摘お願いします。

  • opencvプログラミング エラー

    C++ opencv2.3.1 visual studio 2008 の環境でプログラミングをしているのですが、 以下のようなエラーが出て解決出来ずに困っています。 ------------------------------------------------------------------ 【エラーが出る箇所のソースコード】 if ((tmp_img = cvLoadImage(jpg_name, CV_LOAD_IMAGE_COLOR)) == 0){ free(jpg_name); return -1; } 「jpg_name」には、パスを含むjpgファイル名が記述されたtxtファイルを引数とし、 そのtxtファイルから読み込んだjpgファイル名を格納してあります。 ------------------------------------------------------------------ 【エラー内容】 「jpg_name」にパスも含めて正しくjpgファイル名が格納されているのに tmp_imgに画像が読み込まれず、 if文内のfree、return -1 が実行され、 プログラムが終了してしまいます。 デバッガのウォッチ上では、 「tmp_img」は<未定義の値>、 「cvLoadImage(jpg_name, CV_LOAD_IMAGE_COLOR)」は 「エラー:マネージEEは式の構文を理解しません」と表示されています。 ------------------------------------------------------------------ 解決方法をご存知の方がおられましたら よろしくお願い致します。

  • サンプルソースが実行できない

    VC++2005でMFCダイアログベースのアプリを作成しています。 下記サイトのサンプルソース、 手順1:http://www.g-ishihara.com/mfc_ta_01.htm 手順2:http://www.g-ishihara.com/mfc_ta_02.htm の全く同じ通りに、コーディングし実行してみたのですが、 コンパイルは通りますが、添付ファイルのようなエラーが出てしまい、 exeファイルを実行できません。 手順2の下記コード // 初期表示 if (!err) OnTcnSelchangeTab(0, 0); をコメントアウトしたところ、実行できるようですが。。。 対象ソースが参考URL上にあり大変申し訳ありませんが、 解決法をご存知の方おられましたら、ご教授お願いできませんでしょうか。