Объяснение IplImage * img

Я только начал изучать OpenCV с помощью "Learning OpenCV Computer Vision с библиотекой OpenCV".

В первом примере, демонстрирующем, как отображать изображение, он имеет строку

IplImage* img = cvLoadImage("name.type")

Хотя книга объясняет это, я до сих пор не знаю, что именно делает IplImage* img.

Загружает ли cvLoadImage изображение в img, на которое указывает IplImage? Может кто-нибудь объяснить это мне, пожалуйста? Спасибо вам

Ответы

Ответ 1

  • 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: Другой вопрос об IplImage

  • cvLoadImage предоставляет указатель на IplImage, что означает, что он создает IplImage, когда он загружает его и возвращает вам его.

Не забудьте сделать cvReleaseImage(&img), когда вы закончите с ним, если вы не хотите иметь утечки памяти.