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

您将“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 回答
0

尝试声明IplImage** img;,然后img[index] = cvLoadImage(filename, 0),因为img是 IplImage 指针数组,并且 cvLoadImage() 返回单个图像。

于 2011-11-21T17:42:16.107 回答