About BBS

CXCORE リファレンス マニュアル

最終変更者: 怡土順一, 最終変更リビジョン: 448, 最終変更日時: 2008-12-24 00:28:23 +0900 (水, 24 12月 2008)


データ永続性と実行時型情報(Data Persistence and RTTI)


実行時型情報と汎用関数(RTTI and Generic Functions)


CvTypeInfo

型情報

typedef int (CV_CDECL *CvIsInstanceFunc)( const void* struct_ptr );
typedef void (CV_CDECL *CvReleaseFunc)( void** struct_dblptr );
typedef void* (CV_CDECL *CvReadFunc)( CvFileStorage* storage, CvFileNode* node );
typedef void (CV_CDECL *CvWriteFunc)( CvFileStorage* storage,
                                      const char* name,
                                      const void* struct_ptr,
                                      CvAttrList attributes );
typedef void* (CV_CDECL *CvCloneFunc)( const void* struct_ptr );

typedef struct CvTypeInfo
{
    int flags; /* 使用されない */
    int header_size; /* sizeof(CvTypeInfo) */
    struct CvTypeInfo* prev; /* リスト内で一つ前に登録された型 */
    struct CvTypeInfo* next; /* リスト内で一つ後に登録された型 */
    const char* type_name; /* ファイルストレージに書き込まれた型の名前 */

    /* メソッド */
    CvIsInstanceFunc is_instance; /* 渡されたオブジェクトがその型に属するかをチェックする */
    CvReleaseFunc release; /* オブジェクトを解放する(メモリなど) */
    CvReadFunc read; /* ファイルストレージからオブジェクトを読み込む */
    CvWriteFunc write; /* ファイルストレージにオブジェクトを書き込む */
    CvCloneFunc clone; /* オブジェクトのコピーを生成する */
}
CvTypeInfo;

構造体CvTypeInfoは,標準型もしくはユーザ定義型のいずれかに関する情報を含む. その型のインスタンスは,対応するCvTypeInfo構造体へのポインタを持つ可能性がある. どのような場合でも,関数cvTypeOfを使うことで,与えられたオブジェクトの型情報を見つけることができる. また別の方法として,オブジェクトをファイルストレージから読み込む時に使うcvFindType を用いて型の名前から見つけることもできる. ユーザは新しい型をcvRegisterTypeを使って,型情報構造体を型リストの先頭に登録できる. このように,一般的な標準の型から特別な型を作成し,基本的なメソッドをオーバーライドすることが可能である.


RegisterType

新しい型を登録する

void cvRegisterType( const CvTypeInfo* info );

info
型情報構造体.

関数cvRegisterTypeは,infoに記述された新しい型を登録する. この関数は構造体のコピーを作成するので,ユーザは関数呼び出し後にその構造体を削除しなければならない.


UnregisterType

型の登録を取り消す

void cvUnregisterType( const char* type_name );

type_name
登録を取り消す型の名前.

関数cvUnregisterTypeは,指定した名前の型の登録を取り消す. もしその名前が不明であれば,cvTypeOfを使って型のインスタンスから探すか, もしくはcvFirstTypeから型リストを順に見て型情報を探し, cvUnregisterType(info->type_name)を実行することで取り消すことができる.


FirstType

型リストの先頭を返す

CvTypeInfo* cvFirstType( void );

関数cvFirstTypeは,登録されている型のリストの先頭のものを返す. CvTypeInfo構造体のprevnextフィールドを使うことで,リストをすべて走査できる.


FindType

名前から型を見つける

CvTypeInfo* cvFindType( const char* type_name );

type_name
型の名前.

関数cvFindTypeは,登録された型を名前で探す. NULLを返した場合,指定した名前の型は存在しない.


TypeOf

オブジェクトの型を返す

CvTypeInfo* cvTypeOf( const void* struct_ptr );

struct_ptr
オブジェクトへのポインタ.

関数cvTypeOfは,与えられたオブジェクトの型を見つける. 登録された型のリストを走査し,それぞれの型情報構造体の関数/メソッドis_instanceを呼び, それらの一つが非0を返すか,すべてのリストを走査し終えるまで繰り返す.後者の場合,この関数はNULLを返す.


Release

オブジェクトを解放する

void cvRelease( void** struct_ptr );

struct_ptr
オブジェクトのポインタのポインタ.

関数cvReleaseは,与えられたオブジェクトの型を見つけ,与えられたポインタのポインタを引数にreleaseを呼ぶ.


Clone

オブジェクトのコピーを作成する

void* cvClone( const void* struct_ptr );

struct_ptr
コピーするオブジェクト.

関数cvCloneは,与えたオブジェクトの型を見つけ,渡されたオブジェクトを引数にcloneを呼ぶ.


Save

オブジェクトをファイルに保存する

void cvSave( const char* filename, const void* struct_ptr,
             const char* name=NULL,
             const char* comment=NULL,
             CvAttrList attributes=cvAttrList());

filename
ファイル名.
struct_ptr
保存するオブジェクト.
name
オブジェクト名(オプション).NULLの場合,名前はfilenameから生成される.
comment
ファイルの最初に置かれるコメント(オプション).
attributes
cvWriteに渡される属性(オプション).

関数cvSaveは,オブジェクトをファイルに保存する. これは,cvWriteへの簡単なインタフェースを提供する.


Load

オブジェクトをファイルから読み込む

void* cvLoad( const char* filename, CvMemStorage* memstorage=NULL,
              const char* name=NULL, const char** real_name=NULL );

filename
ファイル名.
memstorage
CvSeqCvGraph などの動的構造体のためのメモリストレージ.行列や画像には用いられない.
name
オブジェクト名(オプション).NULLの場合,ファイルストレージにある最初のトップレベルオブジェクトが読み込まれる.
real_name
読み込まれたオブジェクトの名前が代入される出力パラメータ(オプション)name=NULLの場合に役立つ.

関数cvLoadは,ファイルからオブジェクトを読み込む. これはcvReadへの簡単なインタフェースを提供する. オブジェクトが読み込まれた後,ファイルストレージは閉じられて一時的なバッファは全て消去される. 従って,シーケンスや輪郭,グラフなどの動的構造体を読み込むためには,この関数に正しい出力先メモリストレージを与える必要がある.

OpenCV-1.0 リファレンス マニュアル
OpenCV-1.1pre リファレンス マニュアル
OpenCVサンプルコード


CV_ASSERT
CV_CALL
CV_CHECK
CV_CMP
CV_ERROR
CV_FUNCNAME
CV_GET_SEQ_ELEM
CV_GRAPH_EDGE_FIELDS
CV_GRAPH_FIELDS
CV_GRAPH_VERTEX_FIELDS
CV_IABS
CV_IMAGE_ELEM
CV_IMAX
CV_IMIN
CV_NODE_HAS_NAME
CV_NODE_IS_COLLECTION
CV_NODE_IS_EMPTY
CV_NODE_IS_FLOW
CV_NODE_IS_INT
CV_NODE_IS_MAP
CV_NODE_IS_REAL
CV_NODE_IS_SEQ
CV_NODE_IS_STRING
CV_NODE_IS_USER
CV_NODE_SEQ_IS_SIMPLE
CV_QUADEDGE2D_FIELDS
CV_RGB
CV_SEQUENCE_FIELDS
CV_SET_FIELDS
CV_SIGN
CV_SUBDIV2D_FIELDS
CV_SUBDIV2D_POINT_FIELDS
CV_SWAP
CV_TREE_NODE_FIELDS
CV_TURN_ON_IPL_COMPATIBILITY
EXIT
MAX
MIN
OPENCV_ASSERT
OPENCV_CALL
OPENCV_ERRCHK
OPENCV_ERROR
__BEGIN__
__END__

CvANN_MLP
CvANN_MLP_TrainParams
CvANN_MLP::create
CvANN_MLP::train
CvArr
CvAttrList
CvBoost
CvBoostParams
CvBoostTree
CvBoost::get_weak_predictors
CvBoost::predict
CvBoost::prune
CvBoost::train
CvBox2D
CvCapture
CvConDensation
CvConnectedComp
CvConvexityDefect
CvDTree
CvDTreeNode
CvDTreeParams
CvDTreeSplit
CvDTreeTrainData
CvDTree::predict
CvDTree::train
CvEM
CvEMParams
CvEM::train
CvFileNode
CvFileStorage
CvGraph
CvGraphScanner
CvHMM
CvImgObsInfo
CvHaarClassifier
CvHaarClassifierCascade
CvHaarFeature
CvHaarStageClassifier
CvHistogram
CvKNearest
CvKNearest::find_nearest
CvKNearest_train
CvKalman
CvMat
cvMatMul
cvMatMulAdd
CvMatND
CvMemBlock
CvMemStorage
CvMemStoragePos
CvNormalBayesClassifier
CvNormalBayesClassifier::predict
CvNormalBayesClassifier::train
CvPoint
CvPoint2D32f
CvPoint2D64f
CvPoint3D32f
CvPoint3D64f
CvQuadEdge2D
CvRTParams
CvRTrees
CvRTrees::get_proximity
CvRTrees::get_var_importance
CvRTrees::predict
CvRTrees::train
CvRect
CvSVM
CvSVMParams
CvSVM::get_support_vector
CvSVM::train
CvScalar
CvSeq
CvSeqBlock
CvSet
CvSize
CvSize2D32f
CvSlice
CvSparseMat
CvStatModel
CvStatModel::CvStatModel
CvStatModel::clear
CvStatModel::CvStatModel(data)
CvStatModel::~CvStatModel
CvStatModel::load
CvStatModel::predict
CvStatModel::read
CvStatModel::save
CvStatModel::train
CvStatModel::write
CvSubdiv2D
CvSubdiv2DPoint
CvTermCriteria
CvTreeNodeIterator
CvTypeInfo
IplImage
RTreesOOBerror

cv2DRotationMatrix
cv3dTrackerCalibrateCameras
cv3dTrackerLocateObjects
cvAbsDiff
cvAbsDiffS
cvAcc
cvAdaptiveThreshold
cvAdd
cvAddS
cvAddWeighted
cvAlloc
cvAnd
cvAndS
cvApproxChains
cvApproxPoly
cvArcLength
cvAvg
cvAvgSdv
cvBackProjectPCA
cvBoundingRect
cvBoxPoints
cvCalcBackProject
cvCalcBackProjectPatch
cvCalcCovarMatrix
cvCalcCovarMatrixEx
cvCalcDecompCoeff
cvCalcEMD2
cvCalcEigenObjects
cvCalcGlobalOrientation
cvCalcHist
cvCalcImageHomography
cvCalcMotionGradient
cvCalcOpticalFlowBM
cvCalcOpticalFlowHS
cvCalcOpticalFlowLK
cvCalcOpticalFlowPyrLK
cvCalcPCA
cvCalcPGH
cvCalcProbDensity
cvCalcSubdivVoronoi2D
cvCalibrateCamera2
cvCamShift
cvCanny
cvCartToPolar
cvCbrt
cvCheckArr
cvCheckContourConvexity
cvCircle
cvClearGraph
cvClearHist
cvClearMemStorage
cvClearND
cvClearSeq
cvClearSet
cvClearSubdivVoronoi2D
cvClipLine
cvClone
cvCloneGraph
cvCloneImage
cvCloneMat
cvCloneMatND
cvCloneSeq
cvCloneSparseMat
cvCmp
cvCmpS
cvCompareHist
cvComputeCorrespondEpilines
cvConDensInitSampleSet
cvConDensUpdateByTime
cvContourArea
cvContourFromContourTree
cvConvert
cvConvertImage
cvConvertPointsHomogenious
cvConvertScale
cvConvertScaleAbs
cvConvexHull2
cvConvexityDefects
cvCopy
cvCopyHist
cvCopyMakeBorder
cvCornerEigenValsAndVecs
cvCornerHarris
cvCornerMinEigenVal
cvCountNonZero
cvCreate2DHMM
cvCreateCameraCapture
cvCreateChildMemStorage
cvCreateConDensation
cvCreateContourTree
cvCreateData
cvCreateFileCapture
cvCreateGraph
cvCreateGraphScanner
cvCreateHist
cvCreateImage
cvCreateImageHeader
cvCreateKalman
cvCreateMat
cvCreateMatHeader
cvCreateMatND
cvCreateMatNDHeader
cvCreateMemStorage
cvCreateObsInfo
cvCreatePOSITObject
cvCreateSeq
cvCreateSet
cvCreateSparseMat
cvCreateStructuringElementEx
cvCreateSubdivDelaunay2D
cvCreateTrackbar
cvCreateVideoWriter
cvCrossProduct
cvCvtColor
cvCvtScale
cvCvtSeqToArray
cvDCT
cvDFT
cvDecRefData
cvDeleteMoire
cvDestroyAllWindows
cvDestroyWindow
cvDet
cvDilate
cvDistTransform
cvDiv
cvDotProduct
cvDrawChessBoardCorners
cvDrawContours
cvDynamicCorrespondMulti
cvEViterbi
cvEigenDecomposite
cvEigenProjection
cvEigenVV
cvEllipse
cvEllipse2Poly
cvEllipseBox
cvEndFindContours
cvEndWriteSeq
cvEndWriteStruct
cvEqualizeHist
cvErode
cvError
cvErrorStr
cvEstimateHMMStateParams
cvEstimateObsProb
cvEstimateTransProb
cvExp
cvFastArctan
cvFillConvexPoly
cvFillPoly
cvFilter2D
cvFindChessboardCorners
cvFindContours
cvFindCornerSubPix
cvFindExtrinsicCameraParams2
cvFindFundamentalMat
cvFindGraphEdge
cvFindGraphEdgeByPtr
cvFindHomography
cvFindNearestPoint2D
cvFindNextContour
cvFindRuns
cvFindStereoCorrespondence
cvFindType
cvFirstType
cvFitEllipse2
cvFitLine2D
cvFlip
cvFloodFill
cvFlushSeqWriter
cvFree
cvGEMM
cvGet1D
cvGet2D
cvGet3D
cvGetND
cvGetAffineTransform
cvGetCaptureProperty
cvGetCentralMoment
cvGetCol
cvGetCols
cvGetDiag
cvGetDims
cvGetElemType
cvGetErrMode
cvGetErrStatus
cvGetFileNode
cvGetFileNodeByName
cvGetFileNodeName
cvGetGraphVtx
cvGetHashedKey
cvGetHistValue_1D
cvGetHistValue_2D
cvGetHistValue_3D
cvGetHistValue_nD
cvGetHuMoments
cvGetImage
cvGetImageCOI
cvGetImageROI
cvGetMat
cvGetMinMaxHistValue
cvGetModuleInfo
cvGetNextSparseNode
cvGetNormalizedCentralMoment
cvGetNumThreads
cvGetOptimalDFTSize
cvGetPerspectiveTransform
cvGetQuadrangleSubPix
cvGetRawData
cvGetReal1D
cvGetReal2D
cvGetReal3D
cvGetRealND
cvGetRectSubPix
cvGetRootFileNode
cvGetRow
cvGetRows
cvGetSeqElem
cvGetSeqReaderPos
cvGetSetElem
cvGetSize
cvGetSpatialMoment
cvGetSubRect
cvGetTextSize
cvGetThreadNum
cvGetTickCount
cvGetTickFrequency
cvGetTrackbarPos
cvGetWindowHandle
cvGetWindowName
cvGoodFeaturesToTrack
cvGrabFrame
cvGraphAddEdge
cvGraphAddEdgeByPtr
cvGraphAddVtx
cvGraphEdgeIdx
cvGraphRemoveEdge
cvGraphRemoveEdgeByPtr
cvGraphRemoveVtx
cvGraphRemoveVtxByPtr
cvGraphVtxDegree
cvGraphVtxDegreeByPtr
cvGraphVtxIdx
cvGuiBoxReport
cvHaarDetectObjects
cvHoughCircles
cvHoughLines2
cvImgToObs_DCT
cvInRange
cvInRangeS
cvIncRefData
cvInitFont
cvInitImageHeader
cvInitLineIterator
cvInitMatHeader
cvInitMatNDHeader
cvInitMixSegm
cvInitSparseMatIterator
cvInitSystem
cvInitTreeNodeIterator
cvInitUndistortMap
cvInpaint
cvInsertNodeIntoTree
cvIntegral
cvInvSqrt
cvInvert
cvIsInf