HDevEngine을 통한 결과 평가

현재 최신 버전 (2.1.2)에 대한 매뉴얼을 보고 계십니다. 다른 버전에 액세스하려면 페이지 오른쪽 상단 모서리에 있는 '버전 전환' 버튼을 클릭하세요.

■ 현재 사용하고 있는 제품의 버전이 확실하지 않은 경우에는 언제든지 당사 기술 지원팀에 문의하시기 바랍니다.

기능 설명

이 스텝에서는 HDevEngine을 통해 사전에 정의된 Halcon 비전 프로그램을 실행하고, 계산 결과를 Mech-Vision에 출력합니다.

응용 시나리오

이 스텝은 Halcon의 일부 프로시저를 호출하는 데 사용됩니다.

입력 및 출력

  • *입력: * 포트 desc 입력 파라미터에 입력된 데이터 유형에 따라 결정됩니다.

  • *출력: * 포트 desc 출력 파라미터에 입력된 데이터 유형에 따라 결정됩니다.

파라미터 설명

프로그램 설정

"프로그램 설정" 파라미터는 아래 그림과 같습니다.

evaluate results by hdevengine parameter 1
hDev 프로그램 경로

파라미터 설명: 이 파라미터는 HDev 프로그램의 경로, 즉 Halcon의 메인 프로그램의 경로를 설정하는 데 사용됩니다.

외부 프로시저 폴더

파라미터 설명: 이 파라미터는 Halcon에서 외부 함수가 위치한 폴더 경로를 설정하는 데 사용됩니다(여러 경로를 포함할 수 있으며 세미콜론 “;”으로 구분합니다).

프로시저 이름

파라미터 설명: 이 파라미터는 외부 함수의 이름을 설정하는 데 사용되며, 파라미터 드롭다운 리스트에서 선택할 수 있습니다.

디버깅 설정

"디버깅 설정" 파라미터는 아래 그림과 같습니다.

evaluate results by hdevengine parameter 2
온라인 디버깅

파라미터 설명: 디버그 서버를 활성화하려면 선택하십시오. 사용자는 Halcon 소프트웨어에서 Mech-Vision로 전달된 데이터를 실시간으로 확인하고 프로그램을 디버깅할 수 있습니다.

기본값: 선택하지 않음.

조정 설명: 온라인 디버깅 파라미터를 체크한 후 Halcon 소프트웨어 메뉴 바에서 순서대로 Execute  Attach To Process...를 클릭합니다. 그 다음 팝업된 창에서 OK를 클릭하여 Halcon에서 디버깅 서버를 활성화합니다. Halcon에서 디버그 서버가 활성화되지 않으면 Mech-Vision 실행 중에 지연이 발생할 수 있습니다.

조정 제안: 실제 요구 사항에 따라 이 기능을 활성화할지 여부를 선택하십시오.

입력 설정

"입력 설정" 파라미터는 아래 그림과 같습니다.

evaluate results by hdevengine parameter 3

프로시저 이름을 구성한 후에만 입력 설정을 구성할 수 있습니다. 그렇지 않으면 "입력 설정"과 관련된 파라미터가 표시되지 않습니다.

포트 desc 입력

파라미터 설명: 이 파라미터는 이 스텝의 입력 포트 데이터 유형을 설정하는 데 사용됩니다.

ctrl var 이름 입력

파라미터 설명: 이 파라미터는 입력 제어 변수 파라미터의 이름 리스트를 설정하는 데 사용됩니다.

iconic var 이름 입력

파라미터 설명: 이 파라미터는 입력 이미지 변수 파라미터의 이름 리스트를 설정하는 데 사용됩니다.

출력 설정

"출력 설정" 파라미터는 아래 그림과 같습니다.

evaluate results by hdevengine parameter 4
포트 desc 출력

파라미터 설명: 이 파라미터는 이 스텝의 출력 포트 데이터 유형을 설정하는 데 사용됩니다.

ctrl var 이름 출력

파라미터 설명: 이 파라미터는 출력 제어 변수 파라미터의 이름 리스트를 설정하는 데 사용됩니다.

iconic var 이름 출력

파라미터 설명: 이 파라미터는 출력 이미지 변수 파라미터의 이름 리스트를 설정하는 데 사용됩니다.

사용 설명

사용 조건

"HDevEngine을 통한 결과 평가" 스텝을 사용하려면 다음 두 가지 전제 조건을 충족해야 하며, 그렇지 않으면 스텝 라이브러리에서 해당 스텝을 찾을 수 없습니다.

  1. 라이선스가 있는 Halcon HDevelop 소프트웨어가 컴퓨터에 설치되어 있습니다.

  2. Halcon 소프트웨어 설치 디렉토리\bin\x64-win64 디렉토리 아래의 dll 파일을(다음 그림과 같이) Mech-Vision 설치 디렉토리에 복사하고 Mech-Vision 메뉴 바의 도움  플러그인 정보에서 스텝step_hdev_engine 플러그인을 활성화합니다. 그 다음 Mech-Vision를 재부팅합니다.

    evaluate results by hdevengine dll file

가능한 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에서 지원하는 데이터 유형으로 변환될 수 있습니다.

주의사항

"HDevEngine을 통한 결과 평가" 스텝을 사용하여 Halcon 프로그램을 실행할 때 다음 사항에 주의하세요.

  • 메인 프로그램만 실행할 때 입력 설정을 수행할 필요가 없습니다.

  • 메인 프로그램과 외부 함수를 동시 실행하는 것이 지원하지 않습니다.

  • Halcon 프로그램을 디버깅하거나 수정하려면 실행 플래그 파라미터 그룹에서 "파일 리로딩" 옵션을 체크하십시오. 프로젝트를 실행 때마다 Halcon 프로그램을 리로딩할 수 있습니다. "파일 리로딩" 옵션을 언체크하면 프로젝트를 실행 때 수정 전의 프로그램이 로드됩니다.

사용 사례

사례 1: 하나의 HDev 메인 프로그램을 호출하며 메인 프로그램에는 외부 함수가 없음

이 사례에 사용된 Halcon 프로그램은 다음과 같습니다.

read_image (Image, 'fabrik')

regiongrowing (Image, Regions, 1, 1, 3, 200)

area_center (Regions, Area, Row, Column)

Halcon 소프트웨어에서 위 프로그램을 저장한 후 Mech-Vision에서 해당 프로그램을 호출할 수 있습니다. 작업 프로세스는 다음과 같습니다.

  1. 메인 프로그램 경로를 설정합니다. "HDevEngine을 통한 결과 평가" 스텝의 hDev 프로그램 경로 파라미터에서 메인 프로그램 경로를 설정합니다.

  2. 출력 포트를 설정합니다. Halcon에서 사용된 데이터 유형으로 포트 desc 출력 파라미터를 설정합니다.

  3. 출력 변수 이름을 설정합니다. Halcon의 해당 데이터 이름에 따라 ctrl var 이름 출력iconic var 이름 출력을 설정합니다.

위 작업이 완료된 후 스텝 파라미터는 아래 그림과 같습니다.

evaluate results by hdevengine example main paramter

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

evaluate results by hdevengine example main

사례 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에서 해당 프로그램을 호출할 수 있습니다. 작업 프로세스는 다음과 같습니다.

  1. 메인 프로그램 경로를 설정합니다. "HDevEngine을 통한 결과 평가" 스텝의 hDev 프로그램 경로 파라미터에서 메인 프로그램 경로를 설정합니다.

  2. 외부 함수 폴더 경로를 설정합니다. 외부 프로시저 폴더 파라미터에서 외부 함수 폴더 경로를 설정합니다.

  3. 출력 포트를 설정합니다. Halcon에서 사용된 데이터 유형으로 포트 desc 출력 파라미터를 설정합니다.

  4. 출력 변수 이름을 설정합니다. Halcon의 해당 데이터 이름에 따라 ctrl var 이름 출력iconic var 이름 출력을 설정합니다.

위 작업이 완료된 후 스텝 파라미터는 아래 그림과 같습니다.

evaluate results by hdevengine example procedure paremter

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

evaluate results by hdevengine example procedure

사례 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에서 해당 프로그램을 호출할 수 있습니다. 작업 프로세스는 다음과 같습니다.

  1. 외부 함수 폴더 경로를 설정합니다. "HDevEngine을 통한 결과 평가" 스텝의 외부 프로시저 폴더 파라미터에서 외부 함수 폴더 경로를 설정합니다.

  2. 외부 함수 이름을 설정합니다. 프로시저 이름 파라미터의 드롭다운 리스트에서 외부 함수 이름을 선택합니다.

  3. 입력 포트를 설정합니다. 외부 함수 파라미터 리스트에 따라 포트 desc 입력을 설정합니다.

  4. 입력 변수 이름을 설정합니다. Halcon의 해당 데이터 이름에 따라 ctrl var 이름 입력iconic var 이름 입력을 설정합니다.

  5. 출력 포트를 설정합니다. Halcon에서 사용된 데이터 유형으로 포트 desc 출력 파라미터를 설정합니다.

  6. 출력 변수 이름을 설정합니다. Halcon의 해당 데이터 이름에 따라 ctrl var 이름 출력iconic var 이름 출력을 설정합니다.

위 작업이 완료된 후 스텝 파라미터는 아래 그림과 같습니다.

evaluate results by hdevengine example procedure name paramter

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

evaluate results by hdevengine example procedure name

이 페이지가 도움이 되었습니까?

다음 방법을 통해 피드백을 보내주실 수 있습니다:

저희는 귀하의 개인정보를 소중히 다룹니다.

당사 웹사이트는 최상의 사용자 경험을 제공하기 위해 쿠키를 사용하고 있습니다. "모두 수락"을 클릭하시면 쿠키 사용에 동의하시는 것이며, "모두 거부"를 클릭하시면 이 웹사이트 방문 시 귀하의 정보가 추적되거나 기억되지 않도록 단일 쿠키만 사용됩니다.