アットウィキロゴ
openCVのtipsとか@Wiki
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

openCVのtipsとか@Wiki

IPLimage構造体

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

openCVではIPLimageという構造体を使って画像を取り扱う。

たとえばファイルからイメージをロードする際、また、USBカメラから画像を取得する際など全てこの構造体に格納した後に操作を行うスタイルとなっている。


具体的には以下のような構造を持つ。


typedef struct _IplImage
{
    int  nSize;         /* sizeof(IplImage) */
    int  ID;            /* version (=0)*/
    int  nChannels;     /* Most of OpenCV functions support 1,2,3 or 4 channels */
    int  alphaChannel;  /* ignored by OpenCV */
    int  depth;         /* pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S,
                           IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported */
    char colorModel[4]; /* ignored by OpenCV */
    char channelSeq[4]; /* ditto */
    int  dataOrder;     /* 0 - interleaved color channels, 1 - separate color channels.
                           cvCreateImage can only create interleaved images */
    int  origin;        /* 0 - top-left origin,
                           1 - bottom-left origin (Windows bitmaps style) */
    int  align;         /* Alignment of image rows (4 or 8).
                           OpenCV ignores it and uses widthStep instead */
    int  width;         /* image width in pixels */
    int  height;        /* image height in pixels */
    struct _IplROI *roi;/* image ROI. if NULL, the whole image is selected */
    struct _IplImage *maskROI; /* must be NULL */
    void  *imageId;     /* ditto */
    struct _IplTileInfo *tileInfo; /* ditto */
    int  imageSize;     /* image data size in bytes
                           (==image->height*image->widthStep
                           in case of interleaved data)*/
    char *imageData;  /* pointer to aligned image data */
    int  widthStep;   /* size of aligned image row in bytes */
    int  BorderMode[4]; /* ignored by OpenCV */
    int  BorderConst[4]; /* ditto */
    char *imageDataOrigin; /* pointer to very origin of image data
                              (not necessarily aligned) -
                              needed for correct deallocation */
}
IplImage;

コメント部分を読めば大体分かると思う。

重要なのはこの構造体で扱う画像のフォーマットを決める部分。24bitカラーなのかグレースケールなのかとか。

openCVの基本なのでしっかり理解しておこう。

記事メニュー
最近更新されたスレッド
ウィキ募集バナー