- Timestamp:
- 04/23/09 14:39:23 (4 years ago)
- Location:
- lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src
- Files:
-
- 4 modified
-
Core/Cv_A-C.cs (modified) (1 diff)
-
Core/Cv_R-Z.cs (modified) (2 diffs)
-
CvArr/CvMat.cs (modified) (25 diffs)
-
CvArr/IplImage.cs (modified) (33 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/Core/Cv_A-C.cs
r32747 r32749 4117 4117 #endregion 4118 4118 #region CreateData 4119 #if LANG_JP 4119 4120 /// <summary> 4120 4121 /// 画像,行列あるいは多次元配列のデータを確保する. 4121 4122 /// </summary> 4122 4123 /// <param name="arr">配列ヘッダ</param> 4124 #else 4125 /// <summary> 4126 /// Allocates array data. 4127 /// </summary> 4128 /// <param name="arr">Array header. </param> 4129 #endif 4123 4130 public static void CreateData(this CvArr arr) 4124 4131 { -
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/Core/Cv_R-Z.cs
r32747 r32749 684 684 #endregion 685 685 #region ReleaseData 686 /// <summary> 687 /// 配列データを解放する. CvMat あるいは CvMatND の場合,これは単に cvDecRefData() を呼ぶだけである.688 /// つまり,この関数は外部データを解放することができない. cvCreateData の注意事項も参照すること.686 #if LANG_JP 687 /// <summary> 688 /// 配列データを解放する. 689 689 /// </summary> 690 690 /// <param name="arr">配列ヘッダ</param> 691 #else 692 /// <summary> 693 /// Releases array data. 694 /// </summary> 695 /// <param name="arr">Array header.</param> 696 #endif 691 697 public static void ReleaseData(this CvArr arr) 692 698 { … … 2178 2184 #endregion 2179 2185 #region SetData 2186 #if LANG_JP 2180 2187 /// <summary> 2181 2188 /// ユーザデータを配列のヘッダに割り当てる. 2182 2189 /// ヘッダは,関数 cvCreate*Header,関数 cvInit*Header あるいは 関数 cvMat(行列の場合)を用いて,あらかじめ初期化されるべきである. 2183 2190 /// </summary> 2191 /// <typeparam name="T"></typeparam> 2184 2192 /// <param name="arr">配列ヘッダ</param> 2185 2193 /// <param name="data">ユーザデータ</param> 2186 2194 /// <param name="step">バイト単位で表された行の長さ</param> 2195 #else 2196 /// <summary> 2197 /// Assigns user data to the array header. 2198 /// Header should be initialized before using cvCreate*Header, cvInit*Header or cvMat (in case of matrix) function. 2199 /// </summary> 2200 /// <typeparam name="T"></typeparam> 2201 /// <param name="arr">Array header. </param> 2202 /// <param name="data">User data. </param> 2203 /// <param name="step">Full row length in bytes. </param> 2204 #endif 2187 2205 public static void SetData<T>(this CvArr arr, T[] data, int step) where T : struct 2188 2206 { -
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/CvArr/CvMat.cs
r32652 r32749 20 20 public class CvMat : CvArr, ICloneable 21 21 { 22 #region Variables23 /// <summary> 24 /// C++/CLI 側でポインタにアクセスするオブジェクト25 /// </summary> 26 private Extern.WCvMat data;27 /// <summary> 28 /// データポインタ29 /// </summary> 30 private IntPtr ptr;22 #region Fields 23 /// <summary> 24 /// C++/CLI wrapper of data pointer 25 /// </summary> 26 private Extern.WCvMat _data; 27 /// <summary> 28 /// Data pointer 29 /// </summary> 30 private IntPtr _ptr; 31 31 32 32 /// <summary> … … 73 73 public CvMat(int rows, int cols, MatrixType type) 74 74 { 75 this. ptr = CvDll.cvCreateMat(rows, cols, type);76 if (this. ptr == IntPtr.Zero)75 this._ptr = CvDll.cvCreateMat(rows, cols, type); 76 if (this._ptr == IntPtr.Zero) 77 77 { 78 78 throw new OpenCvSharpException("Failed to create CvMat"); 79 79 } 80 this. data = new Extern.WCvMat(this.ptr);80 this._data = new Extern.WCvMat(this._ptr); 81 81 NotifyMemoryPressure(SizeOf); 82 82 } … … 147 147 throw new FileNotFoundException("", filename); 148 148 } 149 this. ptr = CvDll.cvLoadImageM(filename, flags);150 if (this. ptr == IntPtr.Zero)149 this._ptr = CvDll.cvLoadImageM(filename, flags); 150 if (this._ptr == IntPtr.Zero) 151 151 { 152 152 throw new OpenCvSharpException("Failed to create CvMat"); 153 153 } 154 this. data = new Extern.WCvMat(ptr);154 this._data = new Extern.WCvMat(_ptr); 155 155 base.NotifyMemoryPressure(SizeOf); 156 156 } … … 172 172 : base(isEnabledDispose) 173 173 { 174 this. ptr = ptr;175 this. data = new Extern.WCvMat(ptr);174 this._ptr = ptr; 175 this._data = new Extern.WCvMat(ptr); 176 176 base.NotifyMemoryPressure(SizeOf); 177 177 } … … 189 189 : base(isEnabledDispose) 190 190 { 191 this. ptr = base.AllocMemory(SizeOf);192 this. data = new Extern.WCvMat(ptr);191 this._ptr = base.AllocMemory(SizeOf); 192 this._data = new Extern.WCvMat(_ptr); 193 193 base.NotifyMemoryPressure(SizeOf); 194 194 } … … 494 494 if (IsEnabledDispose && !IsDisposed) 495 495 { 496 CvDll.cvReleaseMat(ref ptr);496 CvDll.cvReleaseMat(ref _ptr); 497 497 } 498 498 base.Dispose(); … … 511 511 public override IntPtr CvPtr 512 512 { 513 get { return ptr; }513 get { return _ptr; } 514 514 } 515 515 … … 525 525 public int Type 526 526 { 527 get { return data.type; }527 get { return _data.type; } 528 528 } 529 529 #if LANG_JP … … 538 538 public int Step 539 539 { 540 get { return data.step; }540 get { return _data.step; } 541 541 } 542 542 … … 554 554 public IntPtr Data 555 555 { 556 get { return data.data; }556 get { return _data.data; } 557 557 } 558 558 #if LANG_JP … … 567 567 public unsafe byte* DataByte 568 568 { 569 get { return data.data_ptr; }569 get { return _data.data_ptr; } 570 570 } 571 571 #if LANG_JP … … 580 580 public unsafe short* DataInt16 581 581 { 582 get { return data.data_s; }582 get { return _data.data_s; } 583 583 } 584 584 #if LANG_JP … … 593 593 public unsafe int* DataInt32 594 594 { 595 get { return data.data_i; }595 get { return _data.data_i; } 596 596 } 597 597 #if LANG_JP … … 606 606 public unsafe float* DataSingle 607 607 { 608 get { return data.data_fl; }608 get { return _data.data_fl; } 609 609 } 610 610 #if LANG_JP … … 619 619 public unsafe double* DataDouble 620 620 { 621 get { return data.data_db; }621 get { return _data.data_db; } 622 622 } 623 623 #if LANG_JP … … 638 638 unsafe 639 639 { 640 dataArrayByte = new PointerAccessor.Byte1( data.data_ptr);640 dataArrayByte = new PointerAccessor.Byte1(_data.data_ptr); 641 641 } 642 642 } … … 661 661 unsafe 662 662 { 663 dataArrayShort = new PointerAccessor.Short1( data.data_s);663 dataArrayShort = new PointerAccessor.Short1(_data.data_s); 664 664 } 665 665 } … … 684 684 unsafe 685 685 { 686 dataArrayInt = new PointerAccessor.Int1( data.data_i);686 dataArrayInt = new PointerAccessor.Int1(_data.data_i); 687 687 } 688 688 } … … 707 707 unsafe 708 708 { 709 dataArrayFloat = new PointerAccessor.Float1( data.data_fl);709 dataArrayFloat = new PointerAccessor.Float1(_data.data_fl); 710 710 } 711 711 } … … 730 730 unsafe 731 731 { 732 dataArrayDouble = new PointerAccessor.Double1( data.data_db);732 dataArrayDouble = new PointerAccessor.Double1(_data.data_db); 733 733 } 734 734 } … … 749 749 public int Cols 750 750 { 751 get { return data.cols; }751 get { return _data.cols; } 752 752 } 753 753 #if LANG_JP … … 762 762 public int Height 763 763 { 764 get { return data.height; }764 get { return _data.height; } 765 765 } 766 766 #if LANG_JP … … 775 775 public int Rows 776 776 { 777 get { return data.rows; }777 get { return _data.rows; } 778 778 } 779 779 #if LANG_JP … … 788 788 public int Width 789 789 { 790 get { return data.width; }790 get { return _data.width; } 791 791 } 792 792 #if LANG_JP … … 823 823 get 824 824 { 825 return CvInline.cvmGet( ptr, row, col);825 return CvInline.cvmGet(_ptr, row, col); 826 826 } 827 827 set 828 828 { 829 CvInline.cvmSet( ptr, row, col, value);829 CvInline.cvmSet(_ptr, row, col, value); 830 830 } 831 831 } -
lang/cpluspluscli/OpenCvSharp2/trunk/OpenCvSharp/Src/CvArr/IplImage.cs
r32747 r32749 26 26 /// C++/CLI wrapper in order to access a native structure 27 27 /// </summary> 28 private Extern.WIplImage data;28 private Extern.WIplImage _data; 29 29 /// <summary> 30 30 /// Data pointer 31 31 /// </summary> 32 private IntPtr ptr;32 private IntPtr _ptr; 33 33 34 34 … … 70 70 if(!File.Exists(filename)) 71 71 throw new FileNotFoundException("", filename); 72 this. ptr = CvDll.cvLoadImage(filename, flags);73 if (this. ptr == IntPtr.Zero)72 this._ptr = CvDll.cvLoadImage(filename, flags); 73 if (this._ptr == IntPtr.Zero) 74 74 { 75 75 throw new OpenCvSharpException("Failed to create IplImage"); 76 76 } 77 this. data = new Extern.WIplImage(this.ptr);77 this._data = new Extern.WIplImage(this._ptr); 78 78 } 79 79 #if LANG_JP … … 94 94 public IplImage(CvSize size, BitDepth depth, int channels) 95 95 { 96 this. ptr = CvDll.cvCreateImage(size, depth, channels);97 if (this. ptr == IntPtr.Zero)96 this._ptr = CvDll.cvCreateImage(size, depth, channels); 97 if (this._ptr == IntPtr.Zero) 98 98 { 99 99 throw new OpenCvSharpException("Failed to create IplImage"); 100 100 } 101 this. data = new Extern.WIplImage(this.ptr);101 this._data = new Extern.WIplImage(this._ptr); 102 102 } 103 103 #if LANG_JP … … 120 120 public IplImage(int width, int height, BitDepth depth, int channels) 121 121 { 122 this. ptr = CvDll.cvCreateImage(new CvSize(width, height), depth, channels);123 if (this. ptr == IntPtr.Zero)122 this._ptr = CvDll.cvCreateImage(new CvSize(width, height), depth, channels); 123 if (this._ptr == IntPtr.Zero) 124 124 { 125 125 throw new OpenCvSharpException("Failed to create IplImage"); 126 126 } 127 this. data = new Extern.WIplImage(this.ptr);127 this._data = new Extern.WIplImage(this._ptr); 128 128 } 129 129 #if LANG_JP … … 150 150 : base(isEnabledDispose) 151 151 { 152 this. ptr = ptr;153 this. data = new Extern.WIplImage(ptr);152 this._ptr = ptr; 153 this._data = new Extern.WIplImage(ptr); 154 154 } 155 155 … … 167 167 if (IsEnabledDispose && !IsDisposed) 168 168 { 169 CvDll.cvReleaseImage(ref ptr);169 CvDll.cvReleaseImage(ref _ptr); 170 170 } 171 171 base.Dispose(); … … 184 184 public override IntPtr CvPtr 185 185 { 186 get { return ptr; }186 get { return _ptr; } 187 187 } 188 188 … … 202 202 public int Align 203 203 { 204 get { return data.align; }204 get { return _data.align; } 205 205 } 206 206 #if LANG_JP … … 216 216 public int AlphaChannel 217 217 { 218 get { return data.alphaChannel; }218 get { return _data.alphaChannel; } 219 219 } 220 220 #if LANG_JP … … 230 230 public IntPtr BorderMode 231 231 { 232 get { return data.BorderMode; }232 get { return _data.BorderMode; } 233 233 } 234 234 #if LANG_JP … … 244 244 public IntPtr BorderConst 245 245 { 246 get { return data.BorderConst; }246 get { return _data.BorderConst; } 247 247 } 248 248 #if LANG_JP … … 258 258 public IntPtr ColorModel 259 259 { 260 get { return data.colorModel; }260 get { return _data.colorModel; } 261 261 } 262 262 #if LANG_JP … … 272 272 public IntPtr ChannelSeq 273 273 { 274 get { return data.channelSeq; }274 get { return _data.channelSeq; } 275 275 } 276 276 #if LANG_JP … … 287 287 public int DataOrder 288 288 { 289 get { return data.dataOrder; }289 get { return _data.dataOrder; } 290 290 } 291 291 #if LANG_JP … … 300 300 public BitDepth Depth 301 301 { 302 get { return (BitDepth) data.depth; }302 get { return (BitDepth)_data.depth; } 303 303 } 304 304 #if LANG_JP … … 313 313 public int Height 314 314 { 315 get { return data.height; }315 get { return _data.height; } 316 316 } 317 317 #if LANG_JP … … 326 326 public int ID 327 327 { 328 get { return data.ID; }328 get { return _data.ID; } 329 329 } 330 330 #if LANG_JP … … 341 341 public IntPtr ImageData 342 342 { 343 get { return data.imageData; }343 get { return _data.imageData; } 344 344 } 345 345 #if LANG_JP … … 354 354 public unsafe byte* ImageDataPtr 355 355 { 356 get { return (byte*)( data.imageData.ToPointer()); }356 get { return (byte*)(_data.imageData.ToPointer()); } 357 357 } 358 358 #if LANG_JP … … 369 369 public IntPtr ImageDataOrigin 370 370 { 371 get { return data.imageDataOrigin; }371 get { return _data.imageDataOrigin; } 372 372 } 373 373 #if LANG_JP … … 383 383 public int ImageSize 384 384 { 385 get { return data.imageSize; }385 get { return _data.imageSize; } 386 386 } 387 387 #if LANG_JP … … 397 397 public IntPtr MaskROI 398 398 { 399 get { return data.maskROI; }399 get { return _data.maskROI; } 400 400 } 401 401 #if LANG_JP … … 410 410 public int NChannels 411 411 { 412 get { return data.nChannels; }412 get { return _data.nChannels; } 413 413 } 414 414 /// <summary> … … 417 417 public int NSize 418 418 { 419 get { return data.nSize; }419 get { return _data.nSize; } 420 420 } 421 421 #if LANG_JP … … 432 432 public ImageOrigin Origin 433 433 { 434 get { return (ImageOrigin) data.origin; }434 get { return (ImageOrigin)_data.origin; } 435 435 } 436 436 #if LANG_JP … … 445 445 public IntPtr ROIPointer 446 446 { 447 get { return data.roi; }447 get { return _data.roi; } 448 448 } 449 449 #if LANG_JP … … 458 458 public int Width 459 459 { 460 get { return data.width; }460 get { return _data.width; } 461 461 } 462 462 #if LANG_JP … … 471 471 public int WidthStep 472 472 { 473 get { return data.widthStep; }473 get { return _data.widthStep; } 474 474 } 475 475 #endregion … … 486 486 public CvSize Size 487 487 { 488 get { return new CvSize( data.width,data.height); }488 get { return new CvSize(_data.width, _data.height); } 489 489 } 490 490 #if LANG_JP … … 540 540 public int Bpp 541 541 { 542 get { return ( ptr != IntPtr.Zero) ? (data.depth & 255) *data.nChannels : 0; }542 get { return (_ptr != IntPtr.Zero) ? (_data.depth & 255) * _data.nChannels : 0; } 543 543 } 544 544 #endregion … … 827 827 #endregion 828 828 #region CreateHeader 829 /// <summary> 830 /// メモリ確保と初期化を行う 829 #if LANG_JP 830 /// <summary> 831 /// メモリ確保と初期化を行い,IplImage クラスを返す (cvCreateImageHeader). 831 832 /// </summary> 832 833 /// <param name="size">画像の幅と高さ</param> … … 834 835 /// <param name="channels">要素(ピクセル)毎のチャンネル数.1,2,3,4 のいずれか.このチャンネルはインタリーブされる.例えば,通常のカラー画像のデータレイアウトは,b0 g0 r0 b1 g1 r1 ...となっている.</param> 835 836 /// <returns>画像ポインタ</returns> 837 #else 838 /// <summary> 839 /// Allocates, initializes, and returns structure IplImage (cvCreateImageHeader). 840 /// </summary> 841 /// <param name="size">Image width and height. </param> 842 /// <param name="depth">Image depth. </param> 843 /// <param name="channels">Number of channels. </param> 844 /// <returns>Reference to image header</returns> 845 #endif 836 846 public static IplImage CreateHeader(CvSize size, BitDepth depth, int channels) 837 847 { … … 1013 1023 1014 1024 for(int i=1; i<=4; i++){ 1015 if(i <= NChannels){1025 if(i <= _data.nChannels){ 1016 1026 c.Add( new IplImage(w, h, Depth, 1) ); 1017 1027 }else{
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)