我刚刚开始学习OpenCV“使用OpenCV库学习OpenCV计算机视觉”。
在演示如何显示图片的第一个示例中,它有一行
IplImage* img = cvLoadImage("name.type")
虽然这本书解释了这一点,但我仍然不完全清楚IplImage* img
究竟是什么。
cvLoadImage是否将图像加载到IplImage指向的img?有人能解释一下吗?谢谢
答案 0 :(得分:25)
img
是变量的名称,也可能是blahblahblah
;
IplImage
是变量的类型,它只是一个struct
,其中包含图像数据本身以及一些信息(大小,颜色深度等)。图像;
typedef struct _IplImage {
int nSize;
int ID;
int nChannels;
int alphaChannel;
int depth;
char colorModel[4];
char channelSeq[4];
int dataOrder;
int origin;
int align;
int width;
int height;
struct _IplROI* roi;
struct _IplImage* maskROI;
void* imageId;
struct _IplTileInfo* tileInfo;
int imageSize;
char* imageData;
int widthStep;
int BorderMode[4];
int BorderConst[4];
char* imageDataOrigin;
} IplImage;
有关IplImage
的更多信息:Other question about IplImage
cvLoadImage
提供了一个指向IplImage
的指针,这意味着它在加载它时会创建一个IplImage并返回它的位置。如果您不希望内存泄漏,请不要忘记在完成后cvReleaseImage(&img)
。