/// <summary> /// The full constructor /// </summary> /// <param name="source">Name of the file to open or the text string to read the data from. /// Extension of the file (.xml or .yml/.yaml) determines its format /// (XML or YAML respectively). Also you can append .gz to work with /// compressed files, for example myHugeMatrix.xml.gz. /// If both FileStorage::WRITE and FileStorage::MEMORY flags are specified, /// source is used just to specify the output file format /// (e.g. mydata.xml, .yml etc.).</param> /// <param name="flags"></param> /// <param name="encoding">Encoding of the file. Note that UTF-16 XML encoding is not supported /// currently and you should use 8-bit encoding instead of it.</param> public FileStorage(string source, FileStorageMode flags, string encoding = null) { if (source == null) { throw new ArgumentNullException(nameof(source)); } ptr = NativeMethods.core_FileStorage_new2(source, (int)flags, encoding); }
/// <summary> /// operator that performs PCA. The previously stored data, if any, is released /// </summary> /// <param name="fileName"></param> /// <param name="flags"></param> /// <param name="encoding">Encoding of the file. Note that UTF-16 XML encoding is not supported /// currently and you should use 8-bit encoding instead of it.</param> /// <returns></returns> public virtual bool Open(string fileName, FileStorageMode flags, string encoding = null) { if (disposed) { throw new ObjectDisposedException("FileStorage"); } if (fileName == null) { throw new ArgumentNullException(nameof(fileName)); } int ret = NativeMethods.core_FileStorage_open(ptr, fileName, (int)flags, encoding); return(ret != 0); }
/// <summary> /// データの読み書きのためのファイルを開く. /// 書き込みの場合は,新しいファイルが作成されるか,ファイルが存在する場合には上書きされる. /// また,読み書きされるファイルの種類は拡張子で判別される. XMLの場合は.xml,YAMLの場合は.ymlまたは.yamlである. /// </summary> /// <param name="filename">ストレージに関連づけられたファイルの名前</param> /// <param name="memstorage">一時的なデータや,CvSeqや CvGraphなどの動的構造体の保存に使われるメモリストレージ.nullの場合,一時的なメモリが確保されて使用される.</param> /// <param name="flags">ファイルを開く方法または作成する方法</param> /// <param name="encoding"></param> #else /// <summary> /// Opens file storage for reading or writing data /// </summary> /// <param name="filename">Name of the file associated with the storage. </param> /// <param name="memstorage">Memory storage used for temporary data and for storing dynamic structures, such as CvSeq or CvGraph. If it is null, a temporary memory storage is created and used. </param> /// <param name="flags"></param> /// <param name="encoding"></param> #endif public CvFileStorage(string filename, CvMemStorage memstorage, FileStorageMode flags, string encoding) { if (string.IsNullOrEmpty(filename)) { throw new ArgumentNullException("filename"); } IntPtr memstoragePtr = (memstorage == null) ? IntPtr.Zero : memstorage.CvPtr; ptr = NativeMethods.cvOpenFileStorage(filename, memstoragePtr, flags, encoding); if (ptr == IntPtr.Zero) { throw new OpenCvSharpException("Failed to create CvFileStorage"); } }
/// <summary> /// データの読み書きのためのファイルを開く. /// 書き込みの場合は,新しいファイルが作成されるか,ファイルが存在する場合には上書きされる. /// また,読み書きされるファイルの種類は拡張子で判別される. XMLの場合は.xml,YAMLの場合は.ymlまたは.yamlである. /// </summary> /// <param name="filename">ストレージに関連づけられたファイルの名前</param> /// <param name="memstorage">一時的なデータや,CvSeqや CvGraphなどの動的構造体の保存に使われるメモリストレージ.nullの場合,一時的なメモリが確保されて使用される.</param> /// <param name="flags">ファイルを開く方法または作成する方法</param> #else /// <summary> /// Opens file storage for reading or writing data /// </summary> /// <param name="filename">Name of the file associated with the storage. </param> /// <param name="memstorage">Memory storage used for temporary data and for storing dynamic structures, such as CvSeq or CvGraph. If it is null, a temporary memory storage is created and used. </param> /// <param name="flags"></param> #endif public CvFileStorage(string filename, CvMemStorage memstorage, FileStorageMode flags) : this(filename, memstorage, flags, null) { }
/// <summary> /// The full constructor /// </summary> /// <param name="source">Name of the file to open or the text string to read the data from. /// Extension of the file (.xml or .yml/.yaml) determines its format /// (XML or YAML respectively). Also you can append .gz to work with /// compressed files, for example myHugeMatrix.xml.gz. /// If both FileStorage::WRITE and FileStorage::MEMORY flags are specified, /// source is used just to specify the output file format /// (e.g. mydata.xml, .yml etc.).</param> /// <param name="flags"></param> /// <param name="encoding">Encoding of the file. Note that UTF-16 XML encoding is not supported /// currently and you should use 8-bit encoding instead of it.</param> public FileStorage(string source, FileStorageMode flags, string encoding = null) { if (source == null) throw new ArgumentNullException("source"); ptr = NativeMethods.core_FileStorage_new2(source, (int)flags, encoding); }
/// <summary> /// operator that performs PCA. The previously stored data, if any, is released /// </summary> /// <param name="fileName"></param> /// <param name="flags"></param> /// <param name="encoding">Encoding of the file. Note that UTF-16 XML encoding is not supported /// currently and you should use 8-bit encoding instead of it.</param> /// <returns></returns> public virtual bool Open(string fileName, FileStorageMode flags, string encoding = null) { if (disposed) throw new ObjectDisposedException("FileStorage"); if (fileName == null) throw new ArgumentNullException("fileName"); int ret = NativeMethods.core_FileStorage_open(ptr, fileName, (int)flags, encoding); return ret != 0; }
/// <summary> /// データの読み書きのためのファイルを開く. /// 書き込みの場合は,新しいファイルが作成されるか,ファイルが存在する場合には上書きされる. /// また,読み書きされるファイルの種類は拡張子で判別される. XMLの場合は.xml,YAMLの場合は.ymlまたは.yamlである. /// </summary> /// <param name="filename">ストレージに関連づけられたファイルの名前</param> /// <param name="memstorage">一時的なデータや,CvSeqや CvGraphなどの動的構造体の保存に使われるメモリストレージ.nullの場合,一時的なメモリが確保されて使用される.</param> /// <param name="flags">ファイルを開く方法または作成する方法</param> /// <param name="encoding"></param> /// <returns>開いたファイルと関連付けられたCvFileStorageクラスへの参照</returns> #else /// <summary> /// Opens file storage for reading or writing data /// </summary> /// <param name="filename">Name of the file associated with the storage. </param> /// <param name="memstorage">Memory storage used for temporary data and for storing dynamic structures, such as CvSeq or CvGraph. If it is null, a temporary memory storage is created and used. </param> /// <param name="flags"></param> /// <param name="encoding"></param> /// <returns>pointer to CvFileStorage structure.</returns> #endif public static CvFileStorage OpenFileStorage(string filename, CvMemStorage memstorage, FileStorageMode flags, string encoding) { return new CvFileStorage(filename, memstorage, flags, encoding); }
/// <summary> /// データの読み書きのためのファイルを開く. /// 書き込みの場合は,新しいファイルが作成されるか,ファイルが存在する場合には上書きされる. /// また,読み書きされるファイルの種類は拡張子で判別される. XMLの場合は.xml,YAMLの場合は.ymlまたは.yamlである. /// </summary> /// <param name="filename">ストレージに関連づけられたファイルの名前</param> /// <param name="memstorage">一時的なデータや,CvSeqや CvGraphなどの動的構造体の保存に使われるメモリストレージ.nullの場合,一時的なメモリが確保されて使用される.</param> /// <param name="flags">ファイルを開く方法または作成する方法</param> /// <param name="encoding"></param> /// <returns>開いたファイルと関連付けられたCvFileStorageクラスへの参照</returns> #else /// <summary> /// Opens file storage for reading or writing data /// </summary> /// <param name="filename">Name of the file associated with the storage. </param> /// <param name="memstorage">Memory storage used for temporary data and for storing dynamic structures, such as CvSeq or CvGraph. If it is null, a temporary memory storage is created and used. </param> /// <param name="flags"></param> /// <param name="encoding"></param> /// <returns>pointer to CvFileStorage structure.</returns> #endif public static CvFileStorage OpenFileStorage(string filename, CvMemStorage memstorage, FileStorageMode flags, string encoding) { return(new CvFileStorage(filename, memstorage, flags, encoding)); }
/// <summary> /// データの読み書きのためのファイルを開く. /// 書き込みの場合は,新しいファイルが作成されるか,ファイルが存在する場合には上書きされる. /// また,読み書きされるファイルの種類は拡張子で判別される. XMLの場合は.xml,YAMLの場合は.ymlまたは.yamlである. /// </summary> /// <param name="filename">ストレージに関連づけられたファイルの名前</param> /// <param name="memstorage">一時的なデータや,CvSeqや CvGraphなどの動的構造体の保存に使われるメモリストレージ.nullの場合,一時的なメモリが確保されて使用される.</param> /// <param name="flags">ファイルを開く方法または作成する方法</param> /// <returns>開いたファイルと関連付けられたCvFileStorageクラスへの参照</returns> #else /// <summary> /// Opens file storage for reading or writing data /// </summary> /// <param name="filename">Name of the file associated with the storage. </param> /// <param name="memstorage">Memory storage used for temporary data and for storing dynamic structures, such as CvSeq or CvGraph. If it is null, a temporary memory storage is created and used. </param> /// <param name="flags"></param> /// <returns>pointer to CvFileStorage structure.</returns> #endif public static CvFileStorage OpenFileStorage(string filename, CvMemStorage memstorage, FileStorageMode flags) { return new CvFileStorage(filename, memstorage, flags); }