# 스크립트 블럭 예시 – Red 분석

참조가 추가되면 툴 블럭의 데이터에 액세스 할 코드를 작성할 수 있습니다. 이 항목에는 $ result.X1 및 $ result.Y1 태그에서 첫 번째 결함 영역의 중심을 저장하는 샘플 코드가 포함되어 있습니다.

var view = ViDiSubTask_Analyze_Marking.Views[0];
{
$result.Count = view.Regions.Count;
if ($result.Count >= 1)
{
var region = view.Regions[0];
var centerPoint = view.Pose.Transform(region.Center);
var x = centerPoint.X; var y = centerPoint.Y;
var Area1 = region.Area;
$result.X1 = x;
$result.Y1 = y;
$result.Area1 = region.Area;
}
}

이 스크립트에서 다음은 스크립트가 액세스하는 특정 정보의 호출에 대한 설명입니다.

- 마킹 수 반환하기:
  $result.Count = view.Regions.Count;
- 영역 선택하기:
  var region = view.Regions[0];
- 영역의 center-point (X, Y) 반환 하기:
  var centerPoint = view.Pose.Transform(region.Center);
  var x = centerPoint.X;
  var y = centerPoint.Y;
- 영역의 면적 반환 하기:
  var Area1 = region.Area;
- 변수를 태그에 작성하기:
  $result.X1 =x;
  $result.Y1 =y;
  $result.Area1 = region.Area;

별도의 Red 분석 샘플 스크립트입니다.

var redMarkings = $Tasks.Task.DeepLearningRuntimeBlock.Sample.Markings["Analyze"] as IRedMarking;

var score = redMarkings.Views.First().Score;

var threshold = redMarkings.Views.First().Threshold.Lower;

var passBit = 0;

if (score < threshold)

{

passBit = 1;

}

return passBit;

- 런타임 블록 샘플 오브젝트를 IRedMarking 오브젝트로 반환하.
var redMarkings = $Tasks.Task.DeepLearningRuntimeBlock.Sample.Markings["Analyze"] as IRedMarking;
- 현재 이미지의 점수를 가져오기
var score = redMarkings.Views.First().Score;
- 런타임 도구에서 임계치 가져오기
var threshold = redMarkings.Views.First().Threshold.Lower;
- passBit을 초기화하고 0으로 지정하기
var passBit = 0;
- 현재 이미지의 점수가 임계치 미만이면 pass bit 를 1로 설정합니다.
if (score < threshold)
{
passBit = 1;
}
- Task로 passBit 반환하기
return passBit;