テキスト検出の結果をスクリプト検査でcsv出力

テキスト検出の結果をMENOU-TEのスクリプト検査を用いて、csv出力する例を紹介します。

タスクコネクション
image

画像と結果の一部

スクリプト

using System.Text;
// 検査をしない場合はnull 条件に一致する場合はtrue 条件に一致しない場合はfalse
bool? result = null;

// テキスト検出の結果
var textDetectionResult = GetPredictionTaskResult("テキスト検出");

// 有効な結果があるとき
if (textDetectionResult is ITextDetectionTaskResult textDetectionTaskResult)
{
    // csv書き込み(同一ファイルに追加書き込み時はfalseの部分をtrueに変更)
    using var sw = new StreamWriter("C:/work/debug/text.csv", false, Encoding.UTF8);
    // ヘッダー(不要であれば削除,必要に応じて変更)
    sw.WriteLine("時刻,テキスト");
    // 時刻(例としてヘッダーに挿入,時刻などをファイル名やフォルダ名に入れれば、各結果を別ファイルに書き込むことが出来る)
    sw.Write(DateTime.Now.ToString("yyyy/MM/dd/HH:mm:ss" + ","));
    // 結果をすべて書き込み
    foreach (var region in textDetectionTaskResult.Regions)
    {
        foreach (var item in region.Items)
        {
            sw.Write(item.Text + ",");
        }
    }
    sw.WriteLine();
    result = true;
}

// resultは必ず最後の行に記述してください
result

保存先
image

保存されたファイル

シンプルな例を記述しましたが、保存先を日付ごとに分けたい場合は、
以下のコードを足していただき、

var folderName = DateTime.Now.ToString("yyyyMMdd");
// 保存ディレクトリ
var saveDirectory = Path.Combine("C:/work/debug", folderName);

// フォルダが無ければ生成
if (!Directory.Exists(folderName))
{
    Directory.CreateDirectory(saveDirectory);
}

using var sw = new StreamWriter("C:/work/debug/text.csv", false, Encoding.UTF8);

using var sw = new StreamWriter(Path.Combine(saveDirectory, "test.csv"), false, Encoding.UTF8);
に変更すると以下のようにフォルダが生成されて、フォルダ内にtest.csvが保存されます。
image

フォーマットや保存先、ファイル名などは自由に変更できるので、是非色々試してみてください。

「いいね!」 4