形状抽出タスクで算出した面積を、スクリプト検査でcsvに保存する方法を紹介いたします。
錠剤を形状抽出で検出して面積をcsvファイルに保存する例
-
錠剤検出用の領域検出タスクを追加(画像を入力として形状抽出のみで輪郭が取れる場合は不要)
-
錠剤検出のアノテーション及び学習
ここでは結果だけ表示します。
-
錠剤輪郭の形状抽出を追加
-
入力輪郭の入力タイプをスコアマップに変更
-
面積の追加
-
ランタイム評価画面を開く
-
スクリプト検査設定を開いてスクリプトを記述
以下がスクリプトになります。
using System.Text;
// ファイル番号
static int fileCount = 0;
// 拡張子
const string extension = ".csv";
// 保存先
const string saveDirectory = "D:/work/debug";
// 検査をしない場合はnull 条件に一致する場合はtrue 条件に一致しない場合はfalse
bool? result = null;
// 輪郭情報
var contourOutputs = GetContourOutputs("錠剤形状抽出");
// 輪郭情報が存在する時
if (contourOutputs?.Any() == true)
{
// ファイル名
var fileName = fileCount.ToString("D8") + extension;
// 保存パス
var path = Path.Combine(saveDirectory, fileName + extension);
// 書き込み開始
using (var sw = new StreamWriter(path, false, Encoding.UTF8))
{
// ヘッダー
sw.WriteLine("ID,面積,X,Y,幅,高さ");
var i = 1;
foreach (var contourOutput in contourOutputs)
{
sw.Write(i);
sw.Write(",");
sw.Write(contourOutput.Area);
sw.Write(",");
sw.Write(contourOutput.Blob.X);
sw.Write(",");
sw.Write(contourOutput.Blob.Y);
sw.Write(",");
sw.Write(contourOutput.Blob.Width);
sw.Write(",");
sw.WriteLine(contourOutput.Blob.Height);
i++;
}
}
fileCount++;
}
// resultは必ず最後の行に記述してください
result
- スクリプトを保存した後にスクリプト検査をチェック
すると以下のようにcsvファイルが保存されます。
ファイルを開くと以下のように書き込まれています。