Beispiel #1
0
        /// <summary>ラベルの包含関係を調べる</summary>
        /// <param name="label">ラベリングデータ</param>
        /// <param name="token">キャンセルトークン</param>
        /// <returns>包含関係</returns>
        public int[][] GetInclusionLink(LabelStructure label, CancellationTokenSource token)
        {
            logWriter.Write("ラベルの包含関係を調べます");

            if (label == null)
            {
                logWriter.WriteError("ラベル情報がありません");
                logWriter.WriteError("処理を中止します");
                return(null);
            }

            label.SetMinMax();
            int[][] link = new int[label.Max - label.Min + 1][];

            using (PrograssWindow pw = new PrograssWindow("包含検査", label.Max - label.Min + 1))
            {
                Parallel.For(label.Min, label.Max + 1, (n, state) =>
                {
                    if (token.IsCancellationRequested)
                    {
                        state.Break();
                    }
                    link[n - label.Min] = GetInclusionNumber3(label, n);
                    pw.Add();
                });
            }

            logWriter.Write("ラベルの包含関係を調べました");
            return(link);
        }
Beispiel #2
0
        /// <summary>ラベルの包含関係を調べる</summary>
        /// <param name="label">ラベリングデータ</param>
        /// <returns>包含関係</returns>
        public int[][] GetInclusionLink(LabelStructure label)
        {
            logWriter.Write("ラベルの包含関係を調べます");

            if (label == null)
            {
                logWriter.WriteError("ラベル情報がありません");
                logWriter.WriteError("処理を中止します");
                return(null);
            }

            int[][] link = new int[label.Max - label.Min + 1][];

            using (PrograssWindow pw = new PrograssWindow("包含検査", label.Max - label.Min + 1))
            {
                Parallel.For(label.Min, label.Max + 1, (n, state) =>
                {
                    link[n - label.Min] = GetInclusionNumber(label, n);
                    pw.Add();
                });

                pw.Join();
            }

            logWriter.Write("ラベルの包含関係を調べました");
            return(link);
        }