OpenCV学習メモVol.4 IplImage基礎知識
3067 ワード
参考書及び資料
IplImageイメージタイプの基本情報を紹介します
IplImage構造
きほんこうぞう
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; /* " " */
struct _IplTileInfo *tileInfo; /* " " */
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;
しゅへんすう
width,heightは画像の長さと幅である.
depthは深さです.
nchannelはチャネル数、選択範囲は1、2、3、4です.
origin:座標系の原点位置を表し、オプション泥棒は左上または右下:IPL_ORIGIN_TL,IPL_ORIGIN_BL
dataOrder:値の並び:IPL_DATA_ORDER_PIXELまたはIPL_DATA_ORDER_PIXEL.それぞれインターリーブ配列とチャネル配列です.OpenCVではインタリーブ配列がよく用いられる.
イメージタイプ、奥行きマクロ
マクロ#マクロ#
画像のピクセルタイプ
IPL_DEPTH_8U
符号なし8ビット整数
IPL_DEPTH_8S
符号付き8ビット整数
IPL_DEPTH_16S
符号付き16ビット整数
IPL_DEPTH_32S
符号付き32ビット整数
IPL_DEPTH_32F
32ビット浮動小数点数単精度
IPL_DEPTH_64F
64ビット浮動小数点数デュアル精度
ROIとCOI
ROIは対象領域を表します
COIは興味のある通路を代表します