Changeset 32782

Show
Ignore:
Timestamp:
04/24/09 21:12:44 (4 years ago)
Author:
schima
Message:

CvSparseNode?, CvSparseMatIterator?

Location:
lang/cpluspluscli/OpenCvSharp2/trunk
Files:
6 added
10 modified

Legend:

Unmodified
Added
Removed
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp.Extern/CvInline.h

    r32753 r32782  
    350350                                        ::cvRand(statePtr, arr.ToPointer()); 
    351351                                } 
     352 
     353                                // returns next sparse array node (or NULL if there is no more nodes) 
     354                                static IntPtr cvGetNextSparseNode( IntPtr mat_iterator ) 
     355                                { 
     356                                        CvSparseMatIterator* mat_iterator_ptr = reinterpret_cast<CvSparseMatIterator*>(mat_iterator.ToPointer()); 
     357                                        return IntPtr( ::cvGetNextSparseNode(mat_iterator_ptr) ); 
     358                                } 
    352359                        }; 
    353360                } 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp.Extern/OpenCvSharp.Extern.vcproj

    r32745 r32782  
    559559                                </File> 
    560560                                <File 
     561                                        RelativePath=".\WCvSparseMatIterator.cpp" 
     562                                        > 
     563                                </File> 
     564                                <File 
     565                                        RelativePath=".\WCvSparseNode.cpp" 
     566                                        > 
     567                                </File> 
     568                                <File 
    561569                                        RelativePath=".\WCvStereoBMState.cpp" 
    562570                                        > 
     
    729737                                </File> 
    730738                                <File 
     739                                        RelativePath=".\WCvSparseMatIterator.h" 
     740                                        > 
     741                                </File> 
     742                                <File 
     743                                        RelativePath=".\WCvSparseNode.h" 
     744                                        > 
     745                                </File> 
     746                                <File 
    731747                                        RelativePath=".\WCvStereoBMState.h" 
    732748                                        > 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/OpenCvSharp.csproj

    r32750 r32782  
    44    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    55    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    6     <ProductVersion>9.0.21022</ProductVersion> 
     6    <ProductVersion>9.0.30729</ProductVersion> 
    77    <SchemaVersion>2.0</SchemaVersion> 
    88    <ProjectGuid>{4C2356B8-1A1E-4F92-A51C-A49CA116867F}</ProjectGuid> 
     
    154154    <Compile Include="Src\Class\CvPOSITObject.cs" /> 
    155155    <Compile Include="Src\Class\CvRandState.cs" /> 
     156    <Compile Include="Src\Class\CvSparseMatIterator.cs" /> 
     157    <Compile Include="Src\Class\CvSparseNode.cs" /> 
    156158    <Compile Include="Src\Class\CvTreeNodeIterator.cs" /> 
    157159    <Compile Include="Src\Class\CvTreeNodeIteratorT.cs" /> 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/Class/CvChainPtReader.cs

    r32657 r32782  
    1919        /// CvContourScanner pointer 
    2020        /// </summary> 
    21         new private IntPtr ptr; 
     21        new private IntPtr _ptr; 
    2222        /// <summary> 
    2323        /// C++/CLI access to object`s pointer 
    2424        /// </summary> 
    25         new private Extern.WCvChainPtReader data; 
     25        new private Extern.WCvChainPtReader _data; 
    2626        /// <summary> 
    2727        /// Target chain 
    2828        /// </summary> 
    29         private CvChain chain; 
     29        private CvChain _chain; 
    3030 
    3131         
     
    4242        public CvChainPtReader() 
    4343        { 
    44             this.ptr = base.AllocMemory(SizeOf); 
    45             this.data = new Extern.WCvChainPtReader(this.ptr); 
    46             this.chain = null; 
     44            this._ptr = base.AllocMemory(SizeOf); 
     45            this._data = new Extern.WCvChainPtReader(this._ptr); 
     46            this._chain = null; 
    4747        } 
    4848#if LANG_JP 
     
    6060            : this() 
    6161        { 
    62             this.chain = chain; 
     62            this._chain = chain; 
    6363            Cv.StartReadChainPoints(chain, this); 
    6464        } 
     
    8686        new public IntPtr CvPtr 
    8787        { 
    88             get { return ptr; } 
     88            get { return _ptr; } 
    8989        } 
    9090        #endregion 
     
    102102        public sbyte Code 
    103103        { 
    104             get { return data.code; } 
     104            get { return _data.code; } 
    105105        } 
    106106#if LANG_JP 
     
    115115        public CvPoint Pt 
    116116        { 
    117             get { return data.pt; } 
     117            get { return _data.pt; } 
    118118        } 
    119119#if LANG_JP 
     
    128128        public sbyte[,] Deltas 
    129129        { 
    130             get { return data.deltas; } 
     130            get { return _data.deltas; } 
    131131        } 
    132132        #endregion 
     
    150150                throw new ArgumentNullException("chain"); 
    151151            } 
    152             this.chain = chain;             
     152            this._chain = chain;             
    153153            CvDll.cvStartReadChainPoints(chain.CvPtr, this.CvPtr); 
    154154        } 
     
    163163        public IEnumerator<CvPoint> GetEnumerator() 
    164164        { 
    165             if (chain == null) 
     165            if (_chain == null) 
    166166            { 
    167167                throw new NotSupportedException(); 
    168168            } 
    169             Cv.StartReadChainPoints(chain, this); 
    170             Extern.WCvSeq seq = new Extern.WCvSeq(data.seq); 
     169            Cv.StartReadChainPoints(_chain, this); 
     170            Extern.WCvSeq seq = new Extern.WCvSeq(_data.seq); 
    171171            for (int i = 0; i < seq.total; i++) 
    172172            { 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/Class/CvSeqReader.cs

    r32510 r32782  
    1010    /// CvSeqからデータを読み取るためのクラス 
    1111    /// </summary> 
    12     //[StructLayout(LayoutKind.Sequential)] 
    1312    public class CvSeqReader : DisposableObject, ICvPtrHolder  
    1413    { 
    1514        /// <summary> 
    16         /// C++/CLI側でポインタにアクセスするオブジェクト 
    17         /// </summary> 
    18         protected Extern.WCvSeqReader data; 
    19         /// <summary> 
    20         /// データポインタ 
    21         /// </summary> 
    22         protected IntPtr ptr; 
    23  
    24  
    25         #region 初期化と解放 
     15        /// C++/CLI wrapper of data pointer 
     16        /// </summary> 
     17        protected Extern.WCvSeqReader _data; 
     18        /// <summary> 
     19        /// data pointer 
     20        /// </summary> 
     21        protected IntPtr _ptr; 
     22 
     23 
     24        #region Initialization and Disposal 
     25#if LANG_JP 
    2626        /// <summary> 
    2727        /// 初期化 
    2828        /// </summary> 
     29#else 
     30        /// <summary> 
     31        /// Default constructor 
     32        /// </summary> 
     33#endif 
    2934        public CvSeqReader() 
    3035        { 
    31             this.ptr = base.AllocMemory(SizeOf); 
    32             this.data = new Extern.WCvSeqReader(this.ptr); 
     36            this._ptr = base.AllocMemory(SizeOf); 
     37            this._data = new Extern.WCvSeqReader(this._ptr); 
    3338            base.NotifyMemoryPressure(SizeOf); 
    3439        } 
     
    3641 
    3742 
    38         #region プロパティ 
    39         /// <summary> 
    40         /// sizeof(CvSeqReader) を取得する 
     43        #region Properties 
     44        /// <summary> 
     45        /// sizeof(CvSeqReader)  
    4146        /// </summary> 
    4247        public const int SizeOf = Extern.WCvSeqReader.SizeOf; 
    4348        /// <summary> 
    44         /// データポインタ(CvSeqReader*)を取得する 
     49        /// Data pointer (CvSeqReader*) 
    4550        /// </summary> 
    4651        public IntPtr CvPtr 
    4752        { 
    48             get { return ptr; } 
     53            get { return _ptr; } 
    4954        } 
    5055 
     
    5459        public int HeaderSize 
    5560        { 
    56             get { return data.header_size; } 
     61            get { return _data.header_size; } 
    5762        } 
    5863        /// <summary> 
     
    6368            get 
    6469            { 
    65                 if (data.seq == IntPtr.Zero) 
     70                if (_data.seq == IntPtr.Zero) 
    6671                    return null; 
    6772                else 
    68                     return new CvSeq(data.seq); 
     73                    return new CvSeq(_data.seq); 
    6974            } 
    7075        } 
     
    7681            get 
    7782            { 
    78                 if (data.block == IntPtr.Zero) 
     83                if (_data.block == IntPtr.Zero) 
    7984                    return null; 
    8085                else 
    81                     return new CvSeqBlock(data.block); 
     86                    return new CvSeqBlock(_data.block); 
    8287            } 
    8388        } 
     
    8792        public IntPtr Ptr 
    8893        { 
    89             get { return data.ptr; } 
    90             internal set { data.ptr = value; } 
     94            get { return _data.ptr; } 
     95            internal set { _data.ptr = value; } 
    9196        } 
    9297        /// <summary> 
     
    95100        public IntPtr BlockMin 
    96101        { 
    97             get { return data.block_min; } 
     102            get { return _data.block_min; } 
    98103        } 
    99104        /// <summary> 
     
    102107        public IntPtr BlockMax 
    103108        { 
    104             get { return data.block_max; } 
     109            get { return _data.block_max; } 
    105110        } 
    106111        /// <summary> 
     
    109114        public int DeltaIndex 
    110115        { 
    111             get { return data.delta_index; } 
     116            get { return _data.delta_index; } 
    112117        } 
    113118        /// <summary> 
     
    116121        public IntPtr PrevElem 
    117122        { 
    118             get { return data.prev_elem; } 
     123            get { return _data.prev_elem; } 
    119124        } 
    120125        /// <summary> 
     
    129134 
    130135 
    131         #region OpenCV メソッド 
     136        #region OpenCV Methods 
    132137        #region GetSeqReaderPos 
    133138        /// <summary> 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/Class/CvSeqReaderT.cs

    r32510 r32782  
    1414    { 
    1515 
    16         #region 初期化と解放 
     16        #region Initialization and Disposal 
     17#if LANG_JP 
    1718        /// <summary> 
    1819        /// 初期化 
    1920        /// </summary> 
     21#else 
     22        /// <summary> 
     23        /// Default constructor 
     24        /// </summary> 
     25#endif 
    2026        public CvSeqReader() 
    2127            : base() 
     
    2531 
    2632 
    27         #region プロパティ 
     33        #region Properties 
    2834        /// <summary> 
    2935        /// Sequence, beign read 
     
    3339            get 
    3440            { 
    35                 if (data.seq == IntPtr.Zero) 
     41                if (_data.seq == IntPtr.Zero) 
    3642                    return null; 
    3743                else 
    38                     return new CvSeq<T>(data.seq); 
     44                    return new CvSeq<T>(_data.seq); 
    3945            } 
    4046        } 
     
    4248 
    4349 
    44         #region OpenCV メソッド 
     50        #region OpenCV Methods 
    4551        #region ReadSeqElem 
    4652        /// <summary> 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/Core/CvDll.cs

    r32763 r32782  
    608608        [DllImport(DLL_CXCORE)] 
    609609        public static extern IntPtr cvInitMatNDHeader(IntPtr mat, int dims, int[] sizes, MatrixType type, IntPtr data); 
     610        [DllImport(DLL_CXCORE)] 
     611        public static extern IntPtr cvInitSparseMatIterator(IntPtr mat, IntPtr mat_iterator); 
    610612        [DllImport(DLL_CXCORE)] 
    611613        public static extern void cvInitTreeNodeIterator([In, Out] CvTreeNodeIterator tree_iterator, IntPtr first, int max_level); 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/Core/Cv_D-G.cs

    r32763 r32782  
    23162316        #endregion 
    23172317        #region GetCol 
     2318#if LANG_JP 
    23182319        /// <summary> 
    23192320        /// 指定された列を返す 
     
    23232324        /// <param name="col">選択した列の,0を基準としたインデックス.</param> 
    23242325        /// <returns>指定された範囲の列</returns> 
     2326#else 
     2327        /// <summary> 
     2328        /// Returns array column 
     2329        /// </summary> 
     2330        /// <param name="arr">Input array. </param> 
     2331        /// <param name="submat">Reference to the resulting sub-array header. </param> 
     2332        /// <param name="col">Zero-based index of the selected column. </param> 
     2333        /// <returns></returns> 
     2334#endif 
    23252335        public static CvMat GetCol(this CvArr arr, out CvMat submat, int col) 
    23262336        { 
     
    23312341            return GetCols(arr, out submat, col, col + 1); 
    23322342        } 
     2343#if LANG_JP 
    23332344        /// <summary> 
    23342345        /// 指定された範囲の列(複数列)を返す 
     
    23392350        /// <param name="end_col">範囲の最後の(この値を含まない)列の,0を基準としたインデックス.</param> 
    23402351        /// <returns>指定された範囲の列</returns> 
     2352#else 
     2353        /// <summary> 
     2354        /// Returns array column span 
     2355        /// </summary> 
     2356        /// <param name="arr">Input array. </param> 
     2357        /// <param name="submat">Reference to the resulting sub-array header. </param> 
     2358        /// <param name="start_col">Zero-based index of the starting column (inclusive) of the span. </param> 
     2359        /// <param name="end_col">Zero-based index of the ending column (exclusive) of the span. </param> 
     2360        /// <returns></returns> 
     2361#endif 
    23412362        public static CvMat GetCols(this CvArr arr, out CvMat submat, int start_col, int end_col) 
    23422363        { 
     
    23512372        #endregion 
    23522373        #region GetDiag 
     2374#if LANG_JP 
    23532375        /// <summary> 
    23542376        /// 入力配列中の指定された対角列に相当するヘッダを返す.  
     
    23572379        /// <param name="submat">結果として得られる部分配列のヘッダへの参照</param> 
    23582380        /// <returns>結果として得られる部分配列のヘッダへの参照</returns> 
     2381#else 
     2382        /// <summary> 
     2383        /// Returns one of array diagonals 
     2384        /// </summary> 
     2385        /// <param name="arr">Input array. </param> 
     2386        /// <param name="submat">Reference to the resulting sub-array header. </param> 
     2387        /// <returns></returns> 
     2388#endif 
    23592389        public static CvMat GetDiag(this CvArr arr, out CvMat submat) 
    23602390        { 
    23612391            return GetDiag(arr, out submat, 0); 
    23622392        } 
     2393#if LANG_JP 
    23632394        /// <summary> 
    23642395        /// 入力配列中の指定された対角列に相当するヘッダを返す.  
     
    23682399        /// <param name="diag">対角配列の種類</param> 
    23692400        /// <returns>結果として得られる部分配列のヘッダへの参照</returns> 
     2401#else 
     2402        /// <summary> 
     2403        /// Returns one of array diagonals 
     2404        /// </summary> 
     2405        /// <param name="arr">Input array. </param> 
     2406        /// <param name="submat">Reference to the resulting sub-array header. </param> 
     2407        /// <param name="diag">Array diagonal. Zero corresponds to the main diagonal, -1 corresponds to the diagonal above the main etc., 1 corresponds to the diagonal below the main etc. </param> 
     2408        /// <returns></returns> 
     2409#endif 
    23702410        public static CvMat GetDiag(this CvArr arr, out CvMat submat, DiagType diag) 
    23712411        { 
     
    31593199        #endregion 
    31603200        #region GetRow 
     3201#if LANG_JP 
    31613202        /// <summary> 
    31623203        /// 指定された行を返す 
     
    31663207        /// <param name="row">選択した行の,0を基準としたインデックス.</param> 
    31673208        /// <returns>指定された範囲の行</returns> 
     3209#else 
     3210        /// <summary> 
     3211        /// Returns array row 
     3212        /// </summary> 
     3213        /// <param name="arr">Input array. </param> 
     3214        /// <param name="submat">Reference to the resulting sub-array header. </param> 
     3215        /// <param name="row">Zero-based index of the selected row. </param> 
     3216        /// <returns></returns> 
     3217#endif 
    31683218        public static CvMat GetRow(this CvArr arr, out CvMat submat, int row) 
    31693219        { 
     
    31743224            return GetRows(arr, out submat, row, row + 1, 1); 
    31753225        } 
     3226#if LANG_JP 
    31763227        /// <summary> 
    31773228        /// 指定された範囲の行(複数行)を返す 
     
    31823233        /// <param name="end_row">範囲の最後の(この値を含まない)行の,0を基準としたインデックス.</param> 
    31833234        /// <returns>指定された範囲の行</returns> 
    3184         public static CvMat GetRows(CvArr arr, out CvMat submat, int start_row, int end_row) 
     3235#else 
     3236        /// <summary> 
     3237        /// Returns array row span 
     3238        /// </summary> 
     3239        /// <param name="arr">Input array. </param> 
     3240        /// <param name="submat">Reference to the resulting sub-array header. </param> 
     3241        /// <param name="start_row">Zero-based index of the starting row (inclusive) of the span. </param> 
     3242        /// <param name="end_row">Zero-based index of the ending row (exclusive) of the span. </param> 
     3243        /// <returns></returns> 
     3244#endif 
     3245        public static CvMat GetRows(this CvArr arr, out CvMat submat, int start_row, int end_row) 
    31853246        { 
    31863247            return GetRows(arr, out submat, start_row, end_row, 1); 
    31873248        } 
     3249#if LANG_JP 
    31883250        /// <summary> 
    31893251        /// 指定された範囲の行(複数行)を返す 
     
    31953257        /// <param name="delta_row">行の範囲のインデックス間隔. この関数は,start_rowからend_row(は含まない)まで,delta_row毎に行を抽出する. </param> 
    31963258        /// <returns>指定された範囲の行</returns> 
    3197         public static CvMat GetRows(CvArr arr, out CvMat submat, int start_row, int end_row, int delta_row) 
     3259#else 
     3260        /// <summary> 
     3261        /// Returns array row span 
     3262        /// </summary> 
     3263        /// <param name="arr">Input array. </param> 
     3264        /// <param name="submat">Reference to the resulting sub-array header. </param> 
     3265        /// <param name="start_row">Zero-based index of the starting row (inclusive) of the span. </param> 
     3266        /// <param name="end_row">Zero-based index of the ending row (exclusive) of the span. </param> 
     3267        /// <param name="delta_row">Index step in the row span. That is, the function extracts every delta_row-th row from start_row and up to (but not including) end_row. </param> 
     3268        /// <returns></returns> 
     3269#endif 
     3270        public static CvMat GetRows(this CvArr arr, out CvMat submat, int start_row, int end_row, int delta_row) 
    31983271        { 
    31993272            if (arr == null) 
     
    32603333        #endregion 
    32613334        #region GetSize 
     3335#if LANG_JP 
    32623336        /// <summary> 
    32633337        /// 行列または画像の ROI のサイズを返す 
     
    32653339        /// <param name="arr">配列のヘッダ</param> 
    32663340        /// <returns>サイズ</returns> 
     3341#else 
     3342        /// <summary> 
     3343        /// Returns size of matrix or image ROI 
     3344        /// </summary> 
     3345        /// <param name="arr">array header. </param> 
     3346        /// <returns></returns> 
     3347#endif 
    32673348        public static CvSize GetSize(this CvArr arr) 
    32683349        { 
     
    32723353            } 
    32733354            return CvDll.cvGetSize(arr.CvPtr); 
     3355        } 
     3356        #endregion 
     3357        #region GetNextSparseNode 
     3358#if LANG_JP 
     3359        /// <summary> 
     3360        /// 疎な配列において次の要素のポインタを返す 
     3361        /// </summary> 
     3362        /// <param name="mat_iterator">疎な配列のイテレータ.</param> 
     3363        /// <returns></returns> 
     3364#else 
     3365        /// <summary> 
     3366        /// Moves iterator to the next sparse matrix element and returns pointer to it. 
     3367        /// </summary> 
     3368        /// <param name="mat_iterator">Sparse array iterator.</param> 
     3369        /// <returns></returns> 
     3370#endif 
     3371        public static CvSparseNode GetNextSparseNode(this CvSparseMatIterator mat_iterator) 
     3372        { 
     3373            if (mat_iterator == null) 
     3374            { 
     3375                throw new ArgumentNullException("mat_iterator"); 
     3376            } 
     3377            IntPtr result = CvInline.cvGetNextSparseNode(mat_iterator.CvPtr); 
     3378            if (result == IntPtr.Zero) 
     3379                return null; 
     3380            else 
     3381                return new CvSparseNode(result); 
    32743382        } 
    32753383        #endregion 
     
    33033411        #endregion 
    33043412        #region GetSubRect 
     3413#if LANG_JP 
    33053414        /// <summary> 
    33063415        /// 入力配列中の指定した矩形領域に相当するヘッダを返す. 
     
    33113420        /// <param name="rect">着目する矩形領域の,0 を基準とした座標</param> 
    33123421        /// <returns>結果として得られる部分配列のヘッダへの参照</returns> 
     3422#else 
     3423        /// <summary> 
     3424        /// Returns matrix header corresponding to the rectangular sub-array of input image or matrix 
     3425        /// </summary> 
     3426        /// <param name="arr">Input array. </param> 
     3427        /// <param name="submat">Reference to the resultant sub-array header. </param> 
     3428        /// <param name="rect">Zero-based coordinates of the rectangle of interest. </param> 
     3429        /// <returns>Reference to the header, corresponding to a specified rectangle of the input array.</returns> 
     3430#endif 
    33133431        public static CvMat GetSubRect(this CvArr arr, out CvMat submat, CvRect rect) 
    33143432        { 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/Core/Cv_H-Q.cs

    r32739 r32782  
    996996        } 
    997997        #endregion 
     998        #region InitSparseMatIterator 
     999#if LANG_JP 
     1000        /// <summary> 
     1001        /// 疎な配列要素のイテレータを初期化する 
     1002        /// </summary> 
     1003        /// <param name="mat">入力配列</param> 
     1004        /// <param name="mat_iterator">初期化されるイテレータ</param> 
     1005        /// <returns>疎な配列の先頭要素</returns> 
     1006#else 
     1007        /// <summary> 
     1008        /// Initializes sparse array elements iterator 
     1009        /// </summary> 
     1010        /// <param name="mat">Input array</param> 
     1011        /// <param name="mat_iterator">Initialized iterator</param> 
     1012        /// <returns>the first sparse matrix element</returns> 
     1013#endif 
     1014        public static CvSparseNode InitSparseMatIterator(CvSparseMat mat, out CvSparseMatIterator mat_iterator) 
     1015        { 
     1016            if (mat == null) 
     1017            { 
     1018                throw new ArgumentNullException("mat"); 
     1019            } 
     1020            mat_iterator = new CvSparseMatIterator(); 
     1021            return mat_iterator.Init(mat); 
     1022        } 
     1023        #endregion 
    9981024        #region InitSubdivDelaunay2D 
    9991025        /// <summary> 
  • lang/cpluspluscli/OpenCvSharp2/trunk/wrapped functions.csv

    r32763 r32782  
    225225GetMinMaxHistValue;X; 
    226226GetModuleInfo;; 
    227 GetNextSparseNode;; 
     227GetNextSparseNode;X; 
    228228GetNormalizedCentralMoment;X; 
    229229GetNumThreads;X; 
     
    276276InitMatNDHeader;; 
    277277InitMixSegm;; 
    278 InitSparseMatIterator;; 
     278InitSparseMatIterator;X; 
    279279InitSystem;; 
    280280InitTreeNodeIterator;;