テキスト検出の結果をMENOU-TEのスクリプト検査を用いて、csv出力する例を紹介します。
タスクコネクション
画像と結果の一部
スクリプト
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
保存先
保存されたファイル
シンプルな例を記述しましたが、保存先を日付ごとに分けたい場合は、
以下のコードを足していただき、
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
が保存されます。
フォーマットや保存先、ファイル名などは自由に変更できるので、是非色々試してみてください。