Changeset 32668 for lang/cpluspluscli
- Timestamp:
- 04/21/09 00:17:07 (4 years ago)
- Location:
- lang/cpluspluscli/OpenCvSharp2/trunk
- Files:
-
- 9 added
- 7 modified
-
OpenCvSharp.Extern/CvConst.h (modified) (1 diff)
-
OpenCvSharp.Extern/OpenCvSharp.Extern.vcproj (modified) (3 diffs)
-
OpenCvSharp.Extern/WCvHaarClassifier.cpp (added)
-
OpenCvSharp.Extern/WCvHaarClassifier.h (added)
-
OpenCvSharp.Extern/WCvHaarClassifierCascade.h (modified) (2 diffs)
-
OpenCvSharp.Extern/WCvHaarFeature.cpp (added)
-
OpenCvSharp.Extern/WCvHaarFeature.h (added)
-
OpenCvSharp.Extern/WCvHaarStageClassifier.cpp (added)
-
OpenCvSharp.Extern/WCvHaarStageClassifier.h (added)
-
OpenCvSharp.Test/Program.cs (modified) (1 diff)
-
OpenCvSharp.Test/Samples/SURF.cs (modified) (2 diffs)
-
OpenCvSharp/OpenCvSharp.csproj (modified) (2 diffs)
-
OpenCvSharp/Src/Class/CvHaarClassifier.cs (added)
-
OpenCvSharp/Src/Class/CvHaarClassifierCascade.cs (modified) (6 diffs)
-
OpenCvSharp/Src/Class/CvHaarFeature.cs (added)
-
OpenCvSharp/Src/Class/CvHaarStageClassifier.cs (added)
Legend:
- Unmodified
- Added
- Removed
-
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp.Extern/CvConst.h
r32539 r32668 342 342 literal Int32 CV_HAAR_FIND_BIGGEST_OBJECT_ = CV_HAAR_FIND_BIGGEST_OBJECT; 343 343 literal Int32 CV_HAAR_DO_ROUGH_SEARCH_ = CV_HAAR_DO_ROUGH_SEARCH; 344 // CvHaarFeature 345 literal Int32 CV_HAAR_FEATURE_MAX_ = CV_HAAR_FEATURE_MAX; 344 346 // CvHistogram 345 347 literal Int32 CV_HIST_ARRAY_ = CV_HIST_ARRAY; -
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp.Extern/OpenCvSharp.Extern.vcproj
r32582 r32668 511 511 </File> 512 512 <File 513 RelativePath=".\WCvHaarClassifier.cpp" 514 > 515 </File> 516 <File 513 517 RelativePath=".\WCvHaarClassifierCascade.cpp" 518 > 519 </File> 520 <File 521 RelativePath=".\WCvHaarFeature.cpp" 522 > 523 </File> 524 <File 525 RelativePath=".\WCvHaarStageClassifier.cpp" 514 526 > 515 527 </File> … … 633 645 > 634 646 </File> 647 <File 648 RelativePath=".\WCvHaarFeature.h" 649 > 650 </File> 635 651 <Filter 636 652 Name="Class" … … 669 685 </File> 670 686 <File 687 RelativePath=".\WCvHaarClassifier.h" 688 > 689 </File> 690 <File 671 691 RelativePath=".\WCvHaarClassifierCascade.h" 692 > 693 </File> 694 <File 695 RelativePath=".\WCvHaarStageClassifier.h" 672 696 > 673 697 </File> -
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp.Extern/WCvHaarClassifierCascade.h
r32637 r32668 46 46 { 47 47 int get(){ return _ptr->flags; } 48 } ;48 } 49 49 property int count 50 50 { … … 67 67 IntPtr get(){ return IntPtr(_ptr->stage_classifier); } 68 68 } 69 IntPtr stage_classifier_at(int index) 70 { 71 return IntPtr(&(_ptr->stage_classifier[index])); 72 } 69 73 property IntPtr hid_cascade 70 74 { -
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp.Test/Program.cs
r32628 r32668 55 55 static void Main() 56 56 { 57 CvRect rect = new CvRect(10, 20, 30, 40); 58 IntPtr ptr = Marshal.AllocHGlobal(CvRect.SizeOf); 59 Marshal.StructureToPtr(rect, ptr, false); 60 int widthOffset = Marshal.OffsetOf(typeof(CvRect), "Width").ToInt32(); 61 62 Stopwatch watch = new Stopwatch(); 63 64 watch.Start(); 65 for (int i = 0; i < 10000; i++) 66 { 67 int width = rect.Width; 68 } 69 watch.Stop(); 70 Console.WriteLine(watch.ElapsedTicks); 71 watch.Reset(); 72 watch.Start(); 73 for (int i = 0; i < 10000; i++) 74 { 75 int width = Marshal.ReadInt32(ptr, widthOffset); 76 } 77 watch.Stop(); 78 Console.WriteLine(watch.ElapsedTicks); 79 watch.Reset(); 80 watch.Start(); 81 for (int i = 0; i < 10000; i++) 82 { 83 int width = ((CvRect)Marshal.PtrToStructure(ptr, typeof(CvRect))).Width; 84 } 85 watch.Stop(); 86 Console.WriteLine(watch.ElapsedTicks); 87 Console.Read(); 88 57 89 //new Test.Affine(); // 画像のアフィン変換 58 90 -
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp.Test/Samples/SURF.cs
r32568 r32668 46 46 watch.Stop(); 47 47 Console.WriteLine("Extraction time = {0}ms", watch.ElapsedMilliseconds); 48 watch.Reset(); 49 watch.Start(); 48 50 49 51 // シーン画像にある局所画像の領域を線で囲む … … 79 81 Cv.Circle(objColor, center, radius, CvColor.Red, 1, LineType.AntiAlias, 0); 80 82 } 83 watch.Stop(); 84 Console.WriteLine("Drawing time = {0}ms", watch.ElapsedMilliseconds); 81 85 82 86 // ウィンドウに表示 -
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/OpenCvSharp.csproj
r32657 r32668 4 4 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 5 5 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 6 <ProductVersion>9.0. 21022</ProductVersion>6 <ProductVersion>9.0.30729</ProductVersion> 7 7 <SchemaVersion>2.0</SchemaVersion> 8 8 <ProjectGuid>{4C2356B8-1A1E-4F92-A51C-A49CA116867F}</ProjectGuid> … … 146 146 <Compile Include="Src\Class\CvGraphScanner.cs" /> 147 147 <Compile Include="Src\Class\CvGraphVtx.cs" /> 148 <Compile Include="Src\Class\CvHaarClassifier.cs" /> 149 <Compile Include="Src\Class\CvHaarFeature.cs" /> 150 <Compile Include="Src\Class\CvHaarStageClassifier.cs" /> 148 151 <Compile Include="Src\Class\CvHuMoments.cs" /> 149 152 <Compile Include="Src\Class\CvLineIterator.cs" /> -
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/Class/CvHaarClassifierCascade.cs
r32510 r32668 6 6 namespace KwsmLab.OpenCvSharp 7 7 { 8 #if LANG_JP 8 9 /// <summary> 9 10 /// 段階分類器のカスケードまたは木 10 11 /// </summary> 12 #else 13 /// <summary> 14 /// Cascade or tree of stage classifiers 15 /// </summary> 16 #endif 11 17 public class CvHaarClassifierCascade : DisposableObject, ICvPtrHolder 12 18 { 13 19 /// <summary> 14 /// C++/CLI側でポインタにアクセスするオブジェクト 15 /// </summary> 16 private Extern.WCvHaarClassifierCascade data; 17 /// <summary> 18 /// データポインタ 19 /// </summary> 20 private IntPtr ptr; 21 22 23 #region 初期化と解放 20 /// C++/CLI wrapper of data pointer 21 /// </summary> 22 private Extern.WCvHaarClassifierCascade _data; 23 /// <summary> 24 /// Data pointer 25 /// </summary> 26 private IntPtr _ptr; 27 28 29 #region Init and Disposal 30 #if LANG_JP 24 31 /// <summary> 25 32 /// ポインタで初期化 26 33 /// </summary> 27 34 /// <param name="ptr">struct CvHaarClassifierCascade*</param> 35 #else 36 /// <summary> 37 /// Initializes from native pointer 38 /// </summary> 39 /// <param name="ptr"></param> 40 #endif 28 41 public CvHaarClassifierCascade(IntPtr ptr) 29 42 : this(ptr, true) … … 35 48 /// <param name="ptr">struct CvHaarClassifierCascade*</param> 36 49 /// <param name="isEnabledDispose">自動的にGCで解放してよいかどうか</param> 37 publicCvHaarClassifierCascade(IntPtr ptr, bool isEnabledDispose)50 internal CvHaarClassifierCascade(IntPtr ptr, bool isEnabledDispose) 38 51 : base(isEnabledDispose) 39 52 { … … 42 55 throw new OpenCvSharpException("CvHaarClassifierCascadeの生成に失敗しました。"); 43 56 } 44 this. ptr = ptr;45 this. data = new Extern.WCvHaarClassifierCascade(ptr);46 } 47 57 this._ptr = ptr; 58 this._data = new Extern.WCvHaarClassifierCascade(ptr); 59 } 60 #if LANG_JP 48 61 /// <summary> 49 62 /// ファイルからHaar分類機のカスケードを読み込んで返す (cvLoad相当). … … 51 64 /// <param name="filename">読み込むファイル(xml/yaml)</param> 52 65 /// <returns>CvHaarClassifierCascade</returns> 66 #else 67 /// <summary> 68 /// Loads object from file 69 /// </summary> 70 /// <param name="filename">File name (xml/yaml)</param> 71 /// <returns></returns> 72 #endif 53 73 public static CvHaarClassifierCascade FromFile( string filename ) 54 74 { … … 60 80 } 61 81 62 /// <summary> 63 /// リソースの解放 64 /// </summary> 82 #if LANG_JP 83 /// <summary> 84 /// リソースの解放 (cvReleaseHaarClassifierCascade) 85 /// </summary> 86 #else 87 /// <summary> 88 /// Releases using cvReleaseHaarClassifierCascade 89 /// </summary> 90 #endif 65 91 public override void Dispose() 66 92 { 67 93 if (IsEnabledDispose && !IsDisposed) 68 94 { 69 CvDll.cvReleaseHaarClassifierCascade(ref ptr);95 CvDll.cvReleaseHaarClassifierCascade(ref _ptr); 70 96 } 71 97 base.Dispose(); … … 74 100 75 101 76 #region プロパティ77 /// <summary> 78 /// データポインタ (CvMemStorage*)102 #region Properties 103 /// <summary> 104 /// Data pointer (CvHaarClassifierCascade*) 79 105 /// </summary> 80 106 public IntPtr CvPtr 81 107 { 82 get { return ptr; } 83 } 84 /// <summary> 85 /// sizeof(WCvMemStorage) を取得する 86 /// </summary> 87 public const Int32 SizeOf = Extern.WCvMemStorage.SizeOf; 88 89 108 get { return _ptr; } 109 } 110 /// <summary> 111 /// sizeof(CvHaarClassifierCascade) 112 /// </summary> 113 public const Int32 SizeOf = Extern.WCvHaarClassifierCascade.SizeOf; 114 115 116 #if LANG_JP 90 117 /// <summary> 91 118 /// シグネチャ 92 119 /// </summary> 120 #else 121 /// <summary> 122 /// Signature 123 /// </summary> 124 #endif 93 125 public int Flags 94 126 { 95 get { return data.flags; } 96 } 127 get { return _data.flags; } 128 } 129 #if LANG_JP 97 130 /// <summary> 98 131 /// 段階数 99 132 /// </summary> 133 #else 134 /// <summary> 135 /// Number of stages 136 /// </summary> 137 #endif 100 138 public int Count 101 139 { 102 get { return data.count; } 103 } 140 get { return _data.count; } 141 } 142 #if LANG_JP 104 143 /// <summary> 105 144 /// オリジナルのオブジェクトサイズ(カスケードの学習対象) 106 145 /// </summary> 146 #else 147 /// <summary> 148 /// Original object size (the cascade is trained for) 149 /// </summary> 150 #endif 107 151 public CvSize OrigWindowSize 108 152 { 109 get { return data.orig_window_size; } 110 } 153 get { return _data.orig_window_size; } 154 } 155 #if LANG_JP 111 156 /// <summary> 112 157 /// 現在のオブジェクトサイズ 113 158 /// </summary> 159 #else 160 /// <summary> 161 /// Current object size 162 /// </summary> 163 #endif 114 164 public CvSize RealWindowSize 115 165 { 116 get { return data.real_window_size; } 117 } 166 get { return _data.real_window_size; } 167 } 168 #if LANG_JP 118 169 /// <summary> 119 170 /// 現在のスケール 120 171 /// </summary> 172 #else 173 /// <summary> 174 /// Current scale 175 /// </summary> 176 #endif 121 177 public double Scale 122 178 { 123 get { return data.scale; } 124 } 179 get { return _data.scale; } 180 } 181 #if LANG_JP 125 182 /// <summary> 126 183 /// 段階分類器の配列 127 184 /// </summary> 128 public IntPtr StageClassifier 185 #else 186 /// <summary> 187 /// Array of stage classifiers 188 /// </summary> 189 #endif 190 public CvHaarStageClassifier[] StageClassifier 129 191 { 130 192 get 131 193 { 132 return data.stage_classifier; 194 int length = _data.count; 195 CvHaarStageClassifier[] result = new CvHaarStageClassifier[length]; 196 for (int i = 0; i < length; i++) 197 { 198 result[i] = new CvHaarStageClassifier(_data.stage_classifier_at(i)); 199 } 200 return result; 133 201 } 134 202 } 203 #if LANG_JP 135 204 /// <summary> 136 205 /// cvSetImagesForHaarClassifierCascade によって生成されるカスケードの,隠れ最適表現 137 206 /// </summary> 207 #else 208 /// <summary> 209 /// Hidden optimized representation of the cascade, created by cvSetImagesForHaarClassifierCascade 210 /// </summary> 211 #endif 138 212 public IntPtr HidCascade 139 213 { 140 get { return data.hid_cascade; }214 get { return _data.hid_cascade; } 141 215 } 142 216
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)