Exemplo n.º 1
0
        /// <summary>
        /// チェーンリーダを初期化する
        /// </summary>
        /// <param name="target">チェーンへのポインタ</param>
#else
        /// <summary>
        /// Initializes chain reader
        /// </summary>
        /// <param name="target">Pointer to chain</param>
#endif
        public void StartReadChainPoints(CvChain target)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            chain = target;
            NativeMethods.cvStartReadChainPoints(chain.CvPtr, CvPtr);
        }
Exemplo n.º 2
0
        /// <summary>
        /// フリーマンチェーン(Freeman chain)をポリラインで近似する
        /// </summary>
        /// <param name="srcSeq">他のチェーンから参照可能なチェーンへの参照.</param>
        /// <param name="storage">計算結果保存用のストレージ.</param>
        /// <param name="method">推定手法.</param>
        /// <param name="parameter">メソッドパラメータ(現在は使われていない).</param>
        /// <param name="minimalPerimeter">minimal_perimeter以上の周囲長をもつ輪郭のみを計算する.その他のチェーンは結果の構造体から削除される.</param>
        /// <param name="recursive">trueの場合,src_seqからh_nextあるいはv_nextによって辿ることができる全てのチェーンを近似する.falseの場合,単一のチェーンを近似する. </param>
        /// <returns></returns>
#else
        /// <summary>
        /// Approximates Freeman chain(s) with polygonal curve
        /// </summary>
        /// <param name="srcSeq">Freeman chain(s) </param>
        /// <param name="storage">Storage location for the resulting polylines. </param>
        /// <param name="method">Approximation method.</param>
        /// <param name="parameter">Method parameter (not used now). </param>
        /// <param name="minimalPerimeter">Approximates only those contours whose perimeters are not less than minimal_perimeter. Other chains are removed from the resulting structure. </param>
        /// <param name="recursive">If true, the function approximates all chains that access can be obtained to from src_seq by h_next or v_next links. If false, the single chain is approximated. </param>
        /// <returns></returns>
#endif
        public static CvSeq <CvPoint> ApproxChains(CvChain srcSeq, CvMemStorage storage, ContourChain method, double parameter, int minimalPerimeter, bool recursive)
        {
            if (srcSeq == null)
            {
                throw new ArgumentNullException("srcSeq");
            }
            if (storage == null)
            {
                throw new ArgumentNullException("storage");
            }
            IntPtr resultPtr = NativeMethods.cvApproxChains(srcSeq.CvPtr, storage.CvPtr, method, parameter, minimalPerimeter, recursive);

            if (resultPtr == IntPtr.Zero)
            {
                return(null);
            }

            CvSeq <CvPoint> result = new CvSeq <CvPoint>(resultPtr);

            return(result);
        }
Exemplo n.º 3
0
        /// <summary>
        /// フリーマンチェーン(Freeman chain)をポリラインで近似する
        /// </summary>
        /// <param name="srcSeq">他のチェーンから参照可能なチェーンへの参照.</param>
        /// <param name="storage">計算結果保存用のストレージ.</param>
        /// <param name="method">推定手法.</param>
        /// <param name="parameter">メソッドパラメータ(現在は使われていない).</param>
        /// <param name="minimalPerimeter">minimal_perimeter以上の周囲長をもつ輪郭のみを計算する.その他のチェーンは結果の構造体から削除される.</param>
        /// <returns></returns>
#else
        /// <summary>
        /// Approximates Freeman chain(s) with polygonal curve
        /// </summary>
        /// <param name="srcSeq">Freeman chain(s) </param>
        /// <param name="storage">Storage location for the resulting polylines. </param>
        /// <param name="method">Approximation method.</param>
        /// <param name="parameter">Method parameter (not used now). </param>
        /// <param name="minimalPerimeter">Approximates only those contours whose perimeters are not less than minimal_perimeter. Other chains are removed from the resulting structure. </param>
        /// <returns></returns>
#endif
        public static CvSeq <CvPoint> ApproxChains(CvChain srcSeq, CvMemStorage storage, ContourChain method, double parameter, int minimalPerimeter)
        {
            return(ApproxChains(srcSeq, storage, method, parameter, minimalPerimeter, false));
        }
Exemplo n.º 4
0
        /// <summary>
        /// フリーマンチェーン(Freeman chain)をポリラインで近似する
        /// </summary>
        /// <param name="srcSeq">他のチェーンから参照可能なチェーンへの参照.</param>
        /// <param name="storage">計算結果保存用のストレージ.</param>
        /// <param name="method">推定手法.</param>
        /// <returns></returns>
#else
        /// <summary>
        /// Approximates Freeman chain(s) with polygonal curve
        /// </summary>
        /// <param name="srcSeq">Freeman chain(s) </param>
        /// <param name="storage">Storage location for the resulting polylines. </param>
        /// <param name="method">Approximation method.</param>
        /// /// <returns></returns>
#endif
        public static CvSeq <CvPoint> ApproxChains(CvChain srcSeq, CvMemStorage storage, ContourChain method)
        {
            return(ApproxChains(srcSeq, storage, method, 0, 0, false));
        }
Exemplo n.º 5
0
        /// <summary>
        /// フリーマンチェーン(Freeman chain)をポリラインで近似する
        /// </summary>
        /// <param name="srcSeq">他のチェーンから参照可能なチェーンへの参照.</param>
        /// <param name="storage">計算結果保存用のストレージ.</param>
        /// <returns></returns>
#else
        /// <summary>
        /// Approximates Freeman chain(s) with polygonal curve
        /// </summary>
        /// <param name="srcSeq">Freeman chain(s) </param>
        /// <param name="storage">Storage location for the resulting polylines. </param>
        /// <returns></returns>
#endif
        public static CvSeq <CvPoint> ApproxChains(CvChain srcSeq, CvMemStorage storage)
        {
            return(ApproxChains(srcSeq, storage, ContourChain.ApproxSimple, 0, 0, false));
        }
Exemplo n.º 6
0
        /// <summary>
        /// cvStartReadChainPointsで初期化
        /// </summary>
        /// <param name="chain">チェーンへのポインタ</param>
#else
        /// <summary>
        /// Initialize by cvStartReadChainPoints
        /// </summary>
        /// <param name="chain">Pointer to chain</param>
#endif
        public CvChainPtReader(CvChain chain)
            : this()
        {
            this.chain = chain;
            Cv.StartReadChainPoints(chain, this);
        }
Exemplo n.º 7
0
        /// <summary>
        /// デフォルトコンストラクタ
        /// </summary>
#else
        /// <summary>
        /// Default constructor
        /// </summary>
#endif
        public CvChainPtReader()
        {
            ptr   = AllocMemory(SizeOf);
            chain = null;
        }