プロが教えるわが家の防犯対策術!

いつもありがとうございます。

今OpenCVを使って画像の変換をしているのですが、エラーが出てしまい困っています。

cvCvtColor(src, gray_img, CV_RGB2GRAY);
でグレースケールに変換するのはエラーは出ず実行結果が出てくるのですが、

cvCvtColor(src, hsv_img, CV_RGB2HSV);
cvCvtColor(src, hsv_img, CV_HSV2RGB);

このようにHSVに変換しようとすると、「ハンドルされていない例外が発生しました」とエラーが出てきて、実行できません。

HSV変換とグレースケール変換の違いがあるのではないかと思って調べているのですが、わかりません。
わたしの都合によりソースを載せることはできないのですが、何が間違っているか教えてもらえるとうれしいです。

A 回答 (1件)

これだけではなんとも。


正しく使えば正常に動作するので「あなたのプログラムが間違ってます」としか言いようがありません。

ありそうなのは、(srcはデータが入っているだろうから) hsv_imgの初期化忘れとか、データ型かチャンネル数が間違っている、というものです。
hsv_imgの初期化はできてますか?(IplImage*ならcvCreatImageでsrcと同じサイズ、同じデータ型、チャンネル数(H,S,Vで3)を正しく設定する)



http://opencv.jp/opencv-2svn/c/miscellaneous_ima …

この回答への補足

名前をhsv_imgとしていますが、面倒だったのでグレースケールのgray_imgを実はそのまま使っています。
グレースケールのを使ったので、チャンネル数が間違っているかもしれないですよね。

補足日時:2011/11/20 14:33
    • good
    • 0
この回答へのお礼

サイズが間違っていました。
ありがとうございました。

お礼日時:2011/11/30 15:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!