cvCreateImageで画像の領域を確保

IplImage* cvCreateImage( CvSize size, int depth, int channels);

CのmallocやC++のnewと同じ.領域をメモリ空間上に確保してくれる.

引数

  • size:CvSize型の画像のサイズ.cvSize(width, height)で作るのが便利
  • depth:各画素(要素)の大きさを表すint型
    • IPL_DEPTH_1U:2値画像?
    • IPL_DEPTH_8U:通常のグレースケール画像
    • IPL_DEPTH_16U:単精度画像
    • IPL_DEPTH_32F:倍精度画像
    • IPL_DEPTH_8S:符号付きグレースケール画像
    • IPL_DEPTH_16S:符号付き単精度画像
    • IPL_DEPTH_32S:符号付き倍精度画像
  • channels:色数を表すint型

返り値

  • 確保された領域の先頭を示すIplImage*型.

void cvReleaseImage( IplImage **image);

確保されたメモリ領域を解放する

引数

  • image:IplImage**型.画像のポインタ

返り値

  • void型なのでなし

解説

  • 内部でcvCreateImageHeaderとcvCreateDataを呼んでいる.
  • RC1?beta4?あたりから領域解放をしなくても自動的にOpenCVが解放してくれるようになった.

サンプルコード

IplImage* input = cvCreateImage( cvSize( 320, 240), IPL_DEPTH_8U, 1);
cvReleaseImage( &input);
//cvReleaseImageはIplImage**型が引数IplImage*型ではない

実体ファイル

  • cxcore/include/cxcore.h
  • cxcore/src/cxarray.cpp

注意

  • IplImage(OpenCV?)では幅は4の倍数しか使えない.
  • 4で割り切れない幅を指定した場合,widthstepに実際のメモリ空間上の幅が格納され,0でパディングされている.
  • 通常気にする必要は無いが,直接配列に書き込んだりする場合には注意が必要.

ジャンル:OpenCV:OpenCV 1.0準拠


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-27 (木) 11:54:15 (2738d)