/// <summary> /// 選択されたチャンネルの画像を取り出す /// </summary> /// <param name="arr">入力配列. CvMat または IplImage の参照.</param> /// <param name="coiimg">出力行列. 1チャンネルで, 入力配列srcと同じサイズ・ビット深度を持つ.</param> /// <param name="coi">0以上の場合, 指定されたチャンネルについて取り出される。 /// 0未満の場合, 入力配列srcがIplImageでCOIが指定されていれば, そのCOIについて取り出される. [既定値は-1]</param> #else /// <summary> /// Extract the selected image channel /// </summary> /// <param name="arr">The source array. It should be a pointer to CvMat or IplImage</param> /// <param name="coiimg">The destination array; will have single-channel, and the same size and the same depth as src</param> /// <param name="coi">If the parameter is >=0, it specifies the channel to extract; /// If it is <0, src must be a pointer to IplImage with valid COI set - then the selected COI is extracted. [By default this is -1]</param> #endif public static void ExtractImageCOI(CvArr arr, OutputArray coiimg, int coi = -1) { if (arr == null) throw new ArgumentNullException("arr"); if (coiimg == null) throw new ArgumentNullException("coiimg"); arr.ThrowIfDisposed(); coiimg.ThrowIfNotReady(); NativeMethods.core_extractImageCOI(arr.CvPtr, coiimg.CvPtr, coi); coiimg.Fix(); }
/// <summary> /// /// </summary> /// <param name="coiimg"></param> /// <param name="arr"></param> /// <param name="coi">[既定値は-1]</param> #else /// <summary> /// /// </summary> /// <param name="coiimg"></param> /// <param name="arr"></param> /// <param name="coi">[By default this is -1]</param> #endif public static void InsertImageCOI(InputArray coiimg, CvArr arr, int coi = -1) { if (coiimg == null) throw new ArgumentNullException("coiimg"); if (arr == null) throw new ArgumentNullException("arr"); coiimg.ThrowIfDisposed(); arr.ThrowIfDisposed(); NativeMethods.core_insertImageCOI(coiimg.CvPtr, arr.CvPtr, coi); }
/// <summary> /// /// </summary> /// <param name="arr"></param> /// <param name="copyData"></param> /// <param name="allowND"></param> /// <param name="coiMode"></param> /// <returns></returns> public static Mat CvArrToMat(CvArr arr, bool copyData = false, bool allowND = true, int coiMode = 0) { if (arr == null) throw new ArgumentNullException("arr"); arr.ThrowIfDisposed(); IntPtr matPtr = NativeMethods.core_cvarrToMat(arr.CvPtr, copyData ? 1 : 0, allowND ? 1 : 0, coiMode); return new Mat(matPtr); }