0
IplImage *img;
img = (IplImage **)malloc(IMAGE_NUM * sizeof(IplImage *));

for(index=0; index<IMAGE_NUM; index++){
    sprintf(filename, "preproc/preproc%d.jpg", index);
    img = cvLoadImage(filename, 0);
}

やあ!このコードはエラーを生成します: 代入で 'IplImage** {aka _IplImage* }' を 'IplImage {aka _IplImage*}' に変換できません。ここに複数の画像を読み込もうとしています。私は何を間違っていますか?ありがとう!

4

3 に答える 3

0

は IplImage ポインターの配列であり、 cvLoadImage() は単一の画像を返すため、IplImage** img;を宣言してみてください。img[index] = cvLoadImage(filename, 0)img

于 2011-11-21T17:42:16.107 に答える
0

「img」を IplImage へのポインターとして宣言し、それをポインターへのポインターに変換しようとしています。(IplImage**)- IplImage** を IplImage* に割り当てようとしているため、このタイプキャストはこの特定のケースでは正しくありません。

img を次のように宣言します。 IplImage **img;

于 2011-11-21T17:41:04.813 に答える
0

これを試して

IplImage** img;
img = (IplImage**)malloc(IMAGE_NUM * sizeof(IplImage *));

for(index=0; index<IMAGE_NUM; index++){
    sprintf(filename, "preproc/preproc%d.jpg", index);
    *img = cvLoadImage(filename, 0);
}

ちなみに、次のエラーは、各ループの反復後に img ポインターを進めないことによるものです。

于 2011-11-21T17:41:42.583 に答える