0

VisualStudio2008のopenCV2.1で行を検出するコードを実行しています。コードの一部を次に示します。

                  IplImage* src=cvLoadImage("parrot.png");

                  IplImage* dst = cvCreateImage( cvGetSize(src), 8, 1 );
                  IplImage* color_dst = cvCreateImage( cvGetSize(src), 8, 3 );
                  CvMemStorage* storage = cvCreateMemStorage(0);
                  CvSeq* lines = 0;
                  int i;
          int choice=0;
                  cvCanny( src, dst, 10, 100, 3 );

コードは正常にコンパイルされますが、実行すると次のエラーが発生します。OpenCVエラー:サポートされていない形式または不明な機能の形式の組み合わせ()、ファイル........ \ ocv \ opencv \ src \ cv \ cvcanny.cpp 、66行目

これを修正する方法に関するヒント...

4

1 に答える 1

2

デフォルトでは、画像をロードすると、カラー画像としてロードされますcvLoadImage(const char* filename, int iscolor=CV_LOAD_IMAGE_COLOR)。キャニーは、入力および出力として単一チャネルの画像を必要としますvoid cvCanny(const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size=3)。したがって、画像をグレースケールとしてロードするか、後でグレースケールに変換すると、機能するはずです。

また:

IplImage* src=cvLoadImage("parrot.png", CV_LOAD_IMAGE_GRAYSCALE );

または:

cvtColor(src, src, CV_RGB2GRAY);
于 2013-03-27T06:56:11.303 に答える