HDevEngine을 통한 결과 평가
파라미터 설명
프로그램 설정
"프로그램 설정" 파라미터는 아래 그림과 같습니다.

- hDev 프로그램 경로
-
파라미터 설명: 이 파라미터는 HDev 프로그램의 경로, 즉 Halcon의 메인 프로그램의 경로를 설정하는 데 사용됩니다.
- 외부 프로시저 폴더
-
파라미터 설명: 이 파라미터는 Halcon에서 외부 함수가 위치한 폴더 경로를 설정하는 데 사용됩니다(여러 경로를 포함할 수 있으며 세미콜론 “;”으로 구분합니다).
- 프로시저 이름
-
파라미터 설명: 이 파라미터는 외부 함수의 이름을 설정하는 데 사용되며, 파라미터 드롭다운 리스트에서 선택할 수 있습니다.
디버깅 설정
"디버깅 설정" 파라미터는 아래 그림과 같습니다.

- 온라인 디버깅
-
파라미터 설명: 디버그 서버를 활성화하려면 선택하십시오. 사용자는 Halcon 소프트웨어에서 Mech-Vision로 전달된 데이터를 실시간으로 확인하고 프로그램을 디버깅할 수 있습니다.
기본값: 선택하지 않음.
조정 설명: 온라인 디버깅 파라미터를 체크한 후 Halcon 소프트웨어 메뉴 바에서 순서대로
를 클릭합니다. 그 다음 팝업된 창에서 OK를 클릭하여 Halcon에서 디버깅 서버를 활성화합니다. Halcon에서 디버그 서버가 활성화되지 않으면 Mech-Vision 실행 중에 지연이 발생할 수 있습니다.조정 제안: 실제 요구 사항에 따라 이 기능을 활성화할지 여부를 선택하십시오.
입력 설정
"입력 설정" 파라미터는 아래 그림과 같습니다.

프로시저 이름을 구성한 후에만 입력 설정을 구성할 수 있습니다. 그렇지 않으면 "입력 설정"과 관련된 파라미터가 표시되지 않습니다. |
- 포트 desc 입력
-
파라미터 설명: 이 파라미터는 이 스텝의 입력 포트 데이터 유형을 설정하는 데 사용됩니다.
- ctrl var 이름 입력
-
파라미터 설명: 이 파라미터는 입력 제어 변수 파라미터의 이름 리스트를 설정하는 데 사용됩니다.
- iconic var 이름 입력
-
파라미터 설명: 이 파라미터는 입력 이미지 변수 파라미터의 이름 리스트를 설정하는 데 사용됩니다.
출력 설정
"출력 설정" 파라미터는 아래 그림과 같습니다.

- 포트 desc 출력
-
파라미터 설명: 이 파라미터는 이 스텝의 출력 포트 데이터 유형을 설정하는 데 사용됩니다.
- ctrl var 이름 출력
-
파라미터 설명: 이 파라미터는 출력 제어 변수 파라미터의 이름 리스트를 설정하는 데 사용됩니다.
- iconic var 이름 출력
-
파라미터 설명: 이 파라미터는 출력 이미지 변수 파라미터의 이름 리스트를 설정하는 데 사용됩니다.
사용 설명
사용 조건
"HDevEngine을 통한 결과 평가" 스텝을 사용하려면 다음 두 가지 전제 조건을 충족해야 하며, 그렇지 않으면 스텝 라이브러리에서 해당 스텝을 찾을 수 없습니다.
-
라이선스가 있는 Halcon HDevelop 소프트웨어가 컴퓨터에 설치되어 있습니다.
-
Halcon 소프트웨어
설치 디렉토리\bin\x64-win64
디렉토리 아래의 dll 파일을(다음 그림과 같이) Mech-Vision 설치 디렉토리에 복사하고 Mech-Vision 메뉴 바의 에서 스텝의 step_hdev_engine 플러그인을 활성화합니다. 그 다음 Mech-Vision를 재부팅합니다.
가능한 Halcon 프로그램 호출 방식
-
Mech-Vision에서 하나의 HDev 메인 프로그램을 호출하며, 메인 프로그램에는 외부 함수가 없습니다.
-
Mech-Vision에서 하나의 HDev 메인 프로그램을 호출하며, 메인 프로그램에는 여러 개의 외부 함수가 있습니다.
-
Mech-Vision에서 하나의 외부 함수만 호출합니다.
변환에 지원되는 데이터 유형 설명
Mech-Vision 프로젝트에서 다른 스텝이 해당 스텝에 데이터를 입력 시 Mech-Vision 데이터 유형은 Halcon 데이터 유형으로 전환합니다. 해당 스텝이 다른 스텝에 데이터를 입력 시 Halcon 데이터 유형은 Mech-Vision 데이터 유형으로 전환합니다.
변환을 지원하는 데이터 유형에 대한 자세한 정보는 다음과 같습니다.
-
이미지 데이터 유형
Halcon 데이터 유형 | Mech-Vision 데이터 유형 | 설명 |
---|---|---|
Image |
Image |
Mech-Vision 데이터 유형과 Halcon 데이터 유형은 상호 변환할 수 있습니다. |
-
제어 변수 유형
Halcon 데이터 유형 | Mech-Vision 데이터 유형 | 설명 |
---|---|---|
Tuple |
NumberList, String, StringList, Variant, VariantList |
다른 스텝에서 해당 스텝으로 데이터를 입력할 때, 입력된 Mech-Vision 데이터 유형은 Tuple로 변환될 수 있으며, Tuple은 이종 데이터의 집합일 수 있습니다. 이 스텝에서 다른 스텝으로 데이터를 출력할 때는 단일 유형의 데이터만 포함된 Tuple만 Mech-Vision에서 지원하는 데이터 유형으로 변환될 수 있습니다. |
integer |
NumberList |
이 스텝에서 다른 스텝으로 데이터를 출력할 때에만 Halcon에서 지원하는 데이터 유형이 Mech-Vision에서 지원하는 데이터 유형으로 변환될 수 있습니다. |
real |
NumberList |
이 스텝에서 다른 스텝으로 데이터를 출력할 때에만 Halcon에서 지원하는 데이터 유형이 Mech-Vision에서 지원하는 데이터 유형으로 변환될 수 있습니다. |
string |
String |
이 스텝에서 다른 스텝으로 데이터를 출력할 때에만 Halcon에서 지원하는 데이터 유형이 Mech-Vision에서 지원하는 데이터 유형으로 변환될 수 있습니다. |
사용 사례
사례 1: 하나의 HDev 메인 프로그램을 호출하며 메인 프로그램에는 외부 함수가 없음
이 사례에 사용된 Halcon 프로그램은 다음과 같습니다.
read_image (Image, 'fabrik')
regiongrowing (Image, Regions, 1, 1, 3, 200)
area_center (Regions, Area, Row, Column)
Halcon 소프트웨어에서 위 프로그램을 저장한 후 Mech-Vision에서 해당 프로그램을 호출할 수 있습니다. 작업 프로세스는 다음과 같습니다.
-
메인 프로그램 경로를 설정합니다. "HDevEngine을 통한 결과 평가" 스텝의 hDev 프로그램 경로 파라미터에서 메인 프로그램 경로를 설정합니다.
-
출력 포트를 설정합니다. Halcon에서 사용된 데이터 유형으로 포트 desc 출력 파라미터를 설정합니다.
-
출력 변수 이름을 설정합니다. Halcon의 해당 데이터 이름에 따라 ctrl var 이름 출력 및 iconic var 이름 출력을 설정합니다.
위 작업이 완료된 후 스텝 파라미터는 아래 그림과 같습니다.

해당하는 Mech-Vision 프로젝트는 아래와 같습니다. 출력 포트에 해당하는 데이터 스트림을 더블클릭하면 출력 결과를 확인할 수 있습니다.

사례 2: 하나의 HDev 메인 프로그램을 호출하며 메인 프로그램에는 여러 개의 외부 함수가 있음
이 사례에 사용된 Halcon 프로그램은 다음과 같습니다.
* atoms.hdev: Locates irregularities in an atomic grid structure
*
dev_close_window ()
dev_update_window ('off')
* ****
* Acquire image
* ****
read_image (Image, 'atoms')
get_image_size (Image, Width, Height)
crop_rectangle1 (Image, Image, Height / 2, 0, Height - 1, Width - 1)
get_image_size (Image, Width, Height)
*dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowID)
*set_display_font (WindowID, 14, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (2)
dev_display (Image)
*disp_message (WindowID, 'Original image', 'window', 12, 12, 'black', 'true')
*disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* Segment image
* ****
* -> Using watershed
gauss_filter (Image, ImageGauss, 5)
watersheds (ImageGauss, Basins, Watersheds)
dev_display (Image)
dev_set_colored (12)
dev_display (Watersheds)
*disp_message (WindowID, 'Watersheds', 'window', 12, 12, 'black', 'true')
*disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* Process regions
* ****
* -> Skip regions at the border of the image
smallest_rectangle1 (Basins, Row1, Column1, Row2, Column2)
select_shape (Basins, SelectedRegions1, 'column1', 'and', 2, Width - 1)
select_shape (SelectedRegions1, SelectedRegions2, 'row1', 'and', 2, Height - 1)
select_shape (SelectedRegions2, SelectedRegions3, 'column2', 'and', 1, Width - 3)
select_shape (SelectedRegions3, Inner, 'row2', 'and', 1, Height - 3)
* -> Select irregularly shaped atoms
select_shape (Inner, Irregular, ['moments_i1','moments_i1'], 'or', [0,9.5e8], [1.5e8,1e10])
dev_display (Image)
dev_set_line_width (1)
dev_set_color ('white')
dev_display (Inner)
dev_set_line_width (3)
dev_set_color ('red')
dev_display (Irregular)
*disp_message (WindowID, 'Defects', 'window', 12, 12, 'black', 'true')
Halcon 소프트웨어에서 위 프로그램을 저장한 후 Mech-Vision에서 해당 프로그램을 호출할 수 있습니다. 작업 프로세스는 다음과 같습니다.
-
메인 프로그램 경로를 설정합니다. "HDevEngine을 통한 결과 평가" 스텝의 hDev 프로그램 경로 파라미터에서 메인 프로그램 경로를 설정합니다.
-
외부 함수 폴더 경로를 설정합니다. 외부 프로시저 폴더 파라미터에서 외부 함수 폴더 경로를 설정합니다.
-
출력 포트를 설정합니다. Halcon에서 사용된 데이터 유형으로 포트 desc 출력 파라미터를 설정합니다.
-
출력 변수 이름을 설정합니다. Halcon의 해당 데이터 이름에 따라 ctrl var 이름 출력 및 iconic var 이름 출력을 설정합니다.
위 작업이 완료된 후 스텝 파라미터는 아래 그림과 같습니다.

해당하는 Mech-Vision 프로젝트는 아래와 같습니다. 출력 포트에 해당하는 데이터 스트림을 더블클릭하면 출력 결과를 확인할 수 있습니다.

사례 3: 하나의 외부 함수만 호출함
이 사례에 사용된 Halcon 프로그램은 다음과 같습니다.
gauss_filter(Image, Image_Gauss, Kernel_Size)
regiongrowing (Image_Gauss, Regions, 1, 1, 3, 200)
area_center (Regions, Area, Row, Column)
return ()
Halcon 소프트웨어에서 위 프로그램을 저장한 후 Mech-Vision에서 해당 프로그램을 호출할 수 있습니다. 작업 프로세스는 다음과 같습니다.
-
외부 함수 폴더 경로를 설정합니다. "HDevEngine을 통한 결과 평가" 스텝의 외부 프로시저 폴더 파라미터에서 외부 함수 폴더 경로를 설정합니다.
-
외부 함수 이름을 설정합니다. 프로시저 이름 파라미터의 드롭다운 리스트에서 외부 함수 이름을 선택합니다.
-
입력 포트를 설정합니다. 외부 함수 파라미터 리스트에 따라 포트 desc 입력을 설정합니다.
-
입력 변수 이름을 설정합니다. Halcon의 해당 데이터 이름에 따라 ctrl var 이름 입력 및 iconic var 이름 입력을 설정합니다.
-
출력 포트를 설정합니다. Halcon에서 사용된 데이터 유형으로 포트 desc 출력 파라미터를 설정합니다.
-
출력 변수 이름을 설정합니다. Halcon의 해당 데이터 이름에 따라 ctrl var 이름 출력 및 iconic var 이름 출력을 설정합니다.
위 작업이 완료된 후 스텝 파라미터는 아래 그림과 같습니다.

해당하는 Mech-Vision 프로젝트는 아래와 같습니다. 출력 포트에 해당하는 데이터 스트림을 더블클릭하면 출력 결과를 확인할 수 있습니다.
