我正在使用 IplImage 类型的动态数组来存储一些图像(我想对 cvHistogram 做同样的事情但得到相同的错误),我需要从中提取直方图数据。不幸的是,我遇到了错误并且不知道如何解决它。任何以另一种方式执行此操作的帮助和建议将不胜感激。
这是代码的一部分:
void getColorHistogram( void ){
IplImage *images = (IplImage *)malloc( sizeof(IplImage) * 6 );
if ( images == NULL )
{
printf("Memory error. EXITING...\n");
exit( -1 );
}
for (int i = 0; i < 6 ; i++ ){
char *num = (char *)malloc( sizeof(int) );
char *extension = (char *)".jpg";
sprintf( num, "%d", i );
int nameLen = strlen( num ) + strlen( extension ) + 1;
char *imgName = (char *)malloc( nameLen );
strlcpy( imgName, num, nameLen );
strlcat( imgName, extension, nameLen );
images[i] = cvLoadImage( imgName, CV_LOAD_IMAGE_UNCHANGED );
}
free( images );
}
这是我得到的错误
error: no match for ‘operator=’ in ‘images[i] = cvLoadImage
(((const char*)imgName), -0x00000000000000001)’
/opt/local/include/opencv2/core/types_c.h:463: note:
candidates are: _IplImage& _IplImage::operator=(const _IplImage&)
PS我i<6
在循环中使用,因为sizeof(images)/sizeof(images[0])
给了我0。
非常感谢!