Changeset 32253

Show
Ignore:
Timestamp:
04/10/09 21:57:06 (4 years ago)
Author:
schima
Message:

fixed CvPOSITObject

Location:
lang/cpluspluscli/OpenCvSharp2/trunk
Files:
7 modified

Legend:

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

    r31867 r32253  
    2828 
    2929 
    30 // CvCapture, CvVideoWriter, CvFileStorage, _CvContourScannerの定義が、 
     30// CvCapture などの定義が、 
    3131// typedef struct CvCapture CvCapture 
    3232// といったBlackBoxで、これにより警告が出るので抑止 
     
    3535struct CvFileStorage {}; 
    3636struct _CvContourScanner {}; 
     37struct CvPOSITObject {}; 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Class/CvPOSITObject.cs

    r32215 r32253  
    66namespace KwsmLab.OpenCvSharp 
    77{ 
    8     class CvPOSITObject: DisposableObject, ICvPtrHolder 
     8    /// <summary> 
     9    ///  
     10    /// </summary> 
     11    public class CvPOSITObject : DisposableObject, ICvPtrHolder 
    912    { 
    10         /// <summary> 
    11         /// C++/CLI access to object`s pointer 
    12         /// </summary> 
    13         private Extern.WCvPOSITObject data; 
    1413        /// <summary> 
    1514        /// Pointer 
     
    1817 
    1918        #region Init and disposal 
    20 /* 
    2119#if LANG_JP 
    2220        /// <summary> 
    23         ///  
     21        /// cvCreatePOSITObjectで初期化 
     22        /// </summary> 
     23        /// <param name="points">3次元オブジェクトモデル上の点データの配列/param> 
     24#else 
     25        /// <summary> 
     26        /// Constructor (cvCreatePOSITObject) 
     27        /// </summary> 
     28        /// <param name="points">Points of the 3D object model. </param> 
     29#endif 
     30        public CvPOSITObject(CvPoint3D32f[] points) 
     31        { 
     32            if (points == null) 
     33            { 
     34                throw new ArgumentNullException("points"); 
     35            } 
     36            this.ptr = CvDll.cvCreatePOSITObject(points, points.Length); 
     37            if (this.ptr == IntPtr.Zero) 
     38            { 
     39                throw new OpenCvSharpException(); 
     40            } 
     41        } 
     42#if LANG_JP 
     43        /// <summary> 
     44        /// ポインタから初期化 
    2445        /// </summary> 
    2546#else 
    2647        /// <summary> 
    27         /// Empty constructor 
    28         /// </summary> 
    29 #endif 
    30         public CvPOSITObject() 
    31         { 
    32             IntPtr ptr = AllocMemory(SizeOf); 
    33             this.data = new Extern.WCvPOSITObject(ptr); 
    34             this.ptr = data.Ptr; 
    35         }*/ 
    36 #if LANG_JP 
    37         /// <summary> 
    38         ///  
    39         /// </summary> 
    40 #else 
    41         /// <summary> 
    42         /// Constructor 
     48        /// Constructs from pointer 
    4349        /// </summary> 
    4450        /// <param name="ptr">struct CvPOSITObject*</param> 
     
    4652        public CvPOSITObject(IntPtr ptr) 
    4753        { 
    48             this.data = new Extern.WCvPOSITObject(ptr); 
    4954            this.ptr = ptr; 
     55        } 
     56 
     57#if LANG_JP 
     58        /// <summary> 
     59        /// リソースの解放 
     60        /// </summary> 
     61#else 
     62        /// <summary> 
     63        /// cvReleasePOSITObject 
     64        /// </summary> 
     65#endif 
     66        public override void Dispose() 
     67        { 
     68            if (!IsDisposed && IsEnabledDispose) 
     69            { 
     70                CvDll.cvReleasePOSITObject(ref this.ptr); 
     71            } 
     72            base.Dispose(); 
    5073        } 
    5174        #endregion 
     
    6588            get { return ptr; } 
    6689        } 
    67         /// <summary> 
    68         /// sizeof(CvPOSITObject) 
    69         /// </summary> 
    70         //public const Int32 SizeOf = Extern.WCvPOSITObject.SizeOf; 
    71  
    72  
    7390        #endregion 
    7491 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Core/CvDll.cs

    r32249 r32253  
    109109        public static extern IntPtr cvCreateKalman(int dynam_params, int measure_params, int control_params); 
    110110        [DllImport(DLL_CV)] 
    111         public static extern IntPtr cvCreatePOSITObject(CvPoint3D32f[] points, int point_count); 
     111        public static extern IntPtr cvCreatePOSITObject([In] CvPoint3D32f[] points, int point_count); 
    112112        [DllImport(DLL_CV)] 
    113113        public static extern IntPtr cvCreateStereoBMState(StereoBMPreset type, int numberOfDisparities); 
     
    219219        public static extern void cvNormalizeHist(IntPtr hist, double factor); 
    220220        [DllImport(DLL_CV)] 
    221         public static extern void cvPOSIT(IntPtr posit_object, CvPoint2D32f[] image_points, double focal_length, CvTermCriteria criteria, [MarshalAs(UnmanagedType.LPArray)] float[,] rotation_matrix, [MarshalAs(UnmanagedType.LPArray)] float[] translation_vector); 
     221        public static extern void cvPOSIT(IntPtr posit_object, CvPoint2D32f[] image_points, double focal_length, CvTermCriteria criteria, [MarshalAs(UnmanagedType.LPArray)] float[] rotation_matrix, [MarshalAs(UnmanagedType.LPArray)] float[] translation_vector); 
    222222        [DllImport(DLL_CV)] 
    223223        public static extern void cvPreCornerDetect(IntPtr image, IntPtr corners, [MarshalAs(UnmanagedType.U4)] ApertureSize aperture_size); 
     
    240240        [DllImport(DLL_CV)] 
    241241        public static extern void cvReleaseKalman(ref IntPtr kalman); 
     242        [DllImport(DLL_CV)] 
     243        public static extern void cvReleasePOSITObject(ref IntPtr posit_object); 
    242244        [DllImport(DLL_CV)] 
    243245        public static extern void cvReleaseStereoBMState(ref IntPtr state); 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Core/Cv_A-C.cs

    r32215 r32253  
    33983398#if LANG_JP 
    33993399        /// <summary> 
    3400         ///  
    3401         /// </summary> 
    3402         /// <param name="points"></param> 
     3400        /// オブジェクトの情報を持つ構造体を初期化する 
     3401        /// </summary> 
     3402        /// <param name="points">3次元オブジェクトモデル上の点データの配列</param> 
    34033403        /// <returns></returns> 
    34043404#else 
     
    34153415#if LANG_JP 
    34163416        /// <summary> 
    3417         ///  
    3418         /// </summary> 
    3419         /// <param name="points"></param> 
    3420         /// <param name="point_count"></param> 
     3417        /// オブジェクトの情報を持つ構造体を初期化する 
     3418        /// </summary> 
     3419        /// <param name="points">3次元オブジェクトモデル上の点データの配列</param> 
     3420        /// <param name="point_count">オブジェクト上の点データの数</param> 
    34213421        /// <returns></returns> 
    34223422#else 
     
    34303430        public static CvPOSITObject CreatePOSITObject(CvPoint3D32f[] points, int point_count) 
    34313431        { 
    3432             return new CvPOSITObject(CvDll.cvCreatePOSITObject(points, point_count)); 
     3432            if(points == null){ 
     3433                throw new ArgumentNullException("points"); 
     3434            } 
     3435            IntPtr ptr = CvDll.cvCreatePOSITObject(points, point_count); 
     3436            if (ptr == IntPtr.Zero) 
     3437                return null; 
     3438            else 
     3439                return new CvPOSITObject(ptr); 
    34333440        } 
    34343441        #endregion 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Core/Cv_H-Q.cs

    r32215 r32253  
    27812781#else 
    27822782        /// <summary> 
    2783         /// Projects vectors to the specified subspace 
    2784         /// </summary> 
    2785         /// <param name="data">The input data; each vector is either a single row or a single column. </param> 
    2786         /// <param name="avg">The mean (average) vector. If it is a single-row vector, it means that the output vectors are stored as rows of result; otherwise, it should be a single-column vector, then the vectors are stored as columns of result. </param> 
    2787         /// <param name="eigenvects">The eigenvectors (principal components); one vector per row. </param> 
    2788         /// <param name="result">The output matrix of decomposition coefficients. The number of rows must be the same as the number of vectors, the number of columns must be less than or equal to the number of rows in eigenvectors. That it is less, the input vectors are projected into subspace of the first cols(result) principal components.</param> 
    2789         /// <returns></returns> 
    2790 #endif 
    2791         public static void POSIT(CvArr data, CvArr avg, CvArr eigenvects, CvArr result) 
    2792         { 
    2793             if (data == null) 
    2794             { 
    2795                 throw new ArgumentNullException("data"); 
    2796             } 
    2797             if (avg == null) 
    2798             { 
    2799                 throw new ArgumentNullException("avg"); 
    2800             } 
    2801             if (eigenvects == null) 
    2802             { 
    2803                 throw new ArgumentNullException("eigenvects"); 
    2804             } 
    2805             CvDll.cvPOSIT(data.CvPtr, avg.CvPtr, eigenvects.CvPtr, result.CvPtr); 
     2783        /// TODO 
     2784        /// </summary> 
     2785        /// <param name="posit_object"></param> 
     2786        /// <param name="image_points"></param> 
     2787        /// <param name="focal_length"></param> 
     2788        /// <param name="criteria"></param> 
     2789        /// <param name="rotation_matrix"></param> 
     2790        /// <param name="translation_vector"></param> 
     2791#endif 
     2792        public static void POSIT(this CvPOSITObject posit_object, CvPoint2D32f[] image_points, double focal_length, 
     2793              CvTermCriteria criteria, float[] rotation_matrix, float[] translation_vector) 
     2794        { 
     2795            if (posit_object == null) 
     2796                throw new ArgumentNullException("posit_object"); 
     2797            if (rotation_matrix == null) 
     2798                throw new ArgumentNullException("rotation_matrix"); 
     2799            if (translation_vector == null) 
     2800                throw new ArgumentNullException("translation_vector"); 
     2801 
     2802            //CvDll.cvPOSIT(posit_object.CvPtr); 
    28062803        } 
    28072804        #endregion 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Core/Cv_R-Z.cs

    r32249 r32253  
    522522        public static void ReleaseCapture(CvCapture capture) 
    523523        { 
    524             if (capture == null) 
    525             { 
    526                 throw new ArgumentNullException("capture"); 
    527             } 
    528             capture.Dispose(); 
     524            if (capture != null) 
     525            { 
     526                capture.Dispose(); 
     527            } 
    529528        } 
    530529        #endregion 
     
    537536        public static void ReleaseData(this CvArr arr) 
    538537        { 
    539             if (arr == null) 
    540             { 
    541                 throw new ArgumentNullException("arr"); 
    542             } 
    543             CvDll.cvReleaseData(arr.CvPtr); 
     538            if (arr != null) 
     539            { 
     540                CvDll.cvReleaseData(arr.CvPtr); 
     541            } 
    544542        } 
    545543        #endregion 
     
    552550        public static void ReleaseFileStorage(CvFileStorage fs) 
    553551        { 
    554             if (fs == null) 
    555             { 
    556                 throw new ArgumentNullException("fs"); 
    557             } 
    558             fs.Dispose(); 
     552            if (fs != null) 
     553            { 
     554                fs.Dispose(); 
     555            } 
    559556        } 
    560557        #endregion 
     
    566563        public static void ReleaseHaarClassifierCascade(CvHaarClassifierCascade cascade) 
    567564        { 
    568             if (cascade == null) 
    569             { 
    570                 throw new ArgumentNullException("cascade"); 
    571             } 
    572             cascade.Dispose(); 
     565            if (cascade != null) 
     566            { 
     567                cascade.Dispose(); 
     568            } 
    573569        } 
    574570        #endregion 
     
    588584        public static void ReleaseHist(CvHistogram hist) 
    589585        { 
    590             if (hist == null) 
    591             { 
    592                 throw new ArgumentNullException("hist"); 
    593             } 
    594             hist.Dispose(); 
     586            if (hist != null) 
     587            { 
     588                hist.Dispose(); 
     589            } 
    595590        } 
    596591        #endregion 
     
    602597        public static void ReleaseImage(IplImage image) 
    603598        { 
    604             if (image == null) 
    605             { 
    606                 throw new ArgumentNullException("image"); 
    607             } 
    608             image.Dispose(); 
     599            if (image != null) 
     600            { 
     601                image.Dispose(); 
     602            } 
    609603        } 
    610604        #endregion 
     
    616610        public static void ReleaseImageHeader(IplImage image) 
    617611        { 
    618             if (image == null) 
    619             { 
    620                 throw new ArgumentNullException("image"); 
    621             } 
    622             IntPtr ptr = image.CvPtr; 
    623             CvDll.cvReleaseImageHeader(ref ptr); 
     612            if (image != null) 
     613            { 
     614                IntPtr ptr = image.CvPtr; 
     615                CvDll.cvReleaseImageHeader(ref ptr); 
     616            } 
    624617        } 
    625618        #endregion 
     
    639632        public static void ReleaseKalman(CvKalman kalman) 
    640633        { 
    641             if (kalman == null) 
    642             { 
    643                 throw new ArgumentNullException("kalman"); 
    644             } 
    645             kalman.Dispose(); 
     634            if (kalman != null) 
     635            { 
     636                kalman.Dispose(); 
     637            } 
    646638        } 
    647639        #endregion 
     
    653645        public static void ReleaseMat(CvMat mat) 
    654646        { 
    655             if (mat == null) 
    656             { 
    657                 throw new ArgumentNullException("mat"); 
    658             } 
    659             mat.Dispose(); 
     647            if (mat != null) 
     648            { 
     649                mat.Dispose(); 
     650            } 
    660651        } 
    661652        #endregion 
     
    667658        public static void ReleaseMatND(CvMatND mat) 
    668659        { 
    669             if (mat == null) 
    670             { 
    671                 throw new ArgumentNullException("mat"); 
    672             } 
    673             mat.Dispose(); 
     660            if (mat != null) 
     661            { 
     662                mat.Dispose(); 
     663            } 
    674664        } 
    675665        #endregion 
     
    683673        public static void ReleaseMemStorage(CvMemStorage storage) 
    684674        { 
    685             if (storage == null) 
    686             { 
    687                 throw new ArgumentNullException("storage"); 
    688             } 
    689             storage.Dispose(); 
     675            if (storage != null) 
     676            { 
     677                storage.Dispose(); 
     678            } 
     679        } 
     680        #endregion 
     681        #region ReleasePOSITObject 
     682#if LANG_JP 
     683        /// <summary> 
     684        /// 3次元オブジェクト構造体のメモリを解放する 
     685        /// </summary> 
     686        /// <param name="posit_object">構造体 CvPOSIT への参照</param> 
     687#else 
     688        /// <summary> 
     689        /// Deallocates 3D object structure 
     690        /// </summary> 
     691        /// <param name="posit_object">Reference to CvPOSIT structure.</param> 
     692#endif 
     693        public static void ReleasePOSITObject(CvPOSITObject posit_object) 
     694        { 
     695            if (posit_object != null) 
     696            { 
     697                posit_object.Dispose(); 
     698            } 
    690699        } 
    691700        #endregion 
     
    697706        public static void ReleaseMatND(CvSparseMat mat) 
    698707        { 
    699             if (mat == null) 
    700             { 
    701                 throw new ArgumentNullException("mat"); 
    702             } 
    703             mat.Dispose(); 
     708            if (mat != null) 
     709            { 
     710                mat.Dispose(); 
     711            } 
    704712        } 
    705713        #endregion 
     
    719727        public static void ReleaseStructuringElement(IplConvKernel element) 
    720728        { 
    721             if (element == null) 
    722             { 
    723                 throw new ArgumentNullException("element"); 
    724             } 
    725             element.Dispose(); 
     729            if (element != null) 
     730            { 
     731                element.Dispose(); 
     732            } 
    726733        } 
    727734        #endregion 
     
    740747        public static void ReleaseVideoWriter(CvVideoWriter writer) 
    741748        { 
    742             if (writer == null) 
    743             { 
    744                 throw new ArgumentNullException("writer"); 
    745             } 
    746             writer.Dispose(); 
     749            if (writer != null) 
     750            { 
     751                writer.Dispose(); 
     752            } 
    747753        } 
    748754        #endregion 
  • lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/CvArr/IplImage.cs

    r32115 r32253  
    2828 
    2929 
    30         #region 初期化と解放 
     30        #region Initialization and Disposal 
    3131#if LANG_JP 
    3232        /// <summary> 
     
    137137 
    138138 
    139         #region プロパティ 
     139        #region Properties 
    140140        /// <summary> 
    141141        /// sizeof(IplImage)  
     
    150150        } 
    151151 
    152         #region ネイティブの構造体準拠のプロパティ 
     152        #region Native members 
    153153#if LANG_JP 
    154154        /// <summary> 
     
    479479            get { return 2; } 
    480480        } 
     481#if LANG_JP 
     482        /// <summary> 
     483        /// 画像の色深度 (Bits per pixel) 
     484        /// </summary> 
     485#else 
     486        /// <summary> 
     487        /// Bits per pixel 
     488        /// </summary> 
     489#endif 
     490        public int Bpp 
     491        { 
     492            get { return (ptr != IntPtr.Zero) ? (data.depth & 255) * data.nChannels : 0; } 
     493        } 
    481494        #endregion 
    482495 
    483496 
    484         #region 演算子 
     497        #region Operators 
    485498        /// <summary> 
    486499        /// 行列の単項+演算子 
     
    741754 
    742755 
    743         #region OpenCV メソッド 
     756        #region Methods 
    744757        #region Clone 
    745758        /// <summary>