HALCON
2026. 4. 10. 14:25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

🌟 HALCON이란?

더보기

HALCON은 독일 MVTec Software GmbH 에서 만든 머신 비전 라이브러리다!

 

쉽게 말해, 카메라로 찍은 이미지를 분석해서 불량 검사, 측정, 인식 등을 할 수 있게 해주는 소프트웨어.

공장 자동화, 품질 검사, 로봇 비전 등 산업 현장에서 주로 사용한다.

 

 

 

🌟 HALCON의 특징

더보기
특징 설명
강력한 이미지 처리 블롭 분석, 패턴 매칭, OCR, 3D 비전 등 다양한 기능 제공
다양한 언어 지원 C, C++, C#, Python등 여러 언어에서 사용 가능
HDevelop IDE 제공 전용 개발 환경에서 쉽게 코드 작성 가능
크로스 플랫폼 Windows, Linux, macOS 모두 지원
방대한 예제 500개 이상의 예제 코드 제공

 

 

 

🌟 HALCON 에디션 종류

더보기

HALCON은 용도에 따라 여러 에디션 존재

 

에디션 설명
HANCON (Full) 모든 기능을 포함한 정식 버전
HANCON XL 대용량 이미지 처리에 특화된 버전
HANCON Emnedded 임베디드 장치용 경량 버전
HANCON Inspection 검사 특화 버전 (일부 기능 제한)
HALCON Student 학습용 무료 버전 (상업적 사용 불가)
⚠️ 라이센스 파일과 설치된 에디션이 반드시 일치해야 한다!

 

 

 

🌟 HDevelop 이란?

더보기

HDevelop은 HALCON에서 제공하는 전용 통합 개발 환경이다.

  • HALCON 코드를 작성하고 실시간으로 결과를 확인할 수 있다.
  • 이미지를 불러와서 각 처리 단계를 한 줄씩 실행해 볼 수 있다.
  • 작성한 코드를 C++, C# 등의 언어로 자동 변환 해주는 기능도 있다.

 

 

 

🌟 HALCON 기본 개념 용어 정리

더보기

Iconic Variable

이미지, 영역(Region), XLD 등 시각적인 데이터를 담는 변수

 

타입 설명
Image 카메라에서 읽어온 이미지
Region 이미지에서 특정 영역을 표현 (픽셀 집합)
XLD 서브픽셀 단위의 윤곽선/라인 데이터

Control Variable

숫자, 문자열 같은 일반적인 데이터를 담는 변수

Width := 640
Height := 480
Message := 'Hello HALCON'

Operator

HALCON에선 함수를 Operator 이라 부른다.

"기본 문법"

오퍼레이터명 (입력 아이코닉, 출력 아이코닉, 입력 컨트롤, 출력 컨트롤)

 

 

 

🌟 HALCON 기본 사용 흐름

더보기

HALCON에서 이미지 처리를 할 때 일반적인 흐름

이미지 읽기 → 전처리 → 관심 영역 (ROI) → 처리 → 결과 출력

 

 

 

🌟 자주 쓰는 기본 오퍼레이터

더보기

이미지 읽기 / 카메라 연결

* 파일에서 이미지 읽기
read_image (Image, 'image.png')

* 카메라 열기
open_framegrabber ('GigEVision2', 1, 1, 0, 0, 0, 0, 'progressive', -1, 'default', -1, 'false', 'default', 'default', 0, -1, AcqHandle)

* 이미지 1장 캡쳐
grab_image (Image, AcqHandle)

* 카메라 닫기
close_framegrabber (AcqHandle)

이미지 표시

* 윈도우 열기
dev_open_window (0, 0, 640, 480, 'black', WindowHandle)

*이미지 표시
dev_display (Image)

이미지 정보 가져오기

* 이미지 가로/세로 크기 가져오기
get_image_size (Image, Width, Height)

전처리

* RGB → 그레이스케일 변환
rgb1_to_gray (Image, GrayImage)

* 가우시안 블랙 (노이즈 제거)
gauss_filter (GrayImage, ImageGauss, 5)

* 이진화 (Threshold)
threshold (GrayImage, Region, 128, 255)

영역 처리

* 연결된 영역들로 분리
connection (Region, ConnectedRegions)

* 면적, 중심 좌표 구하기
area_center (ConnectedRegion, Area, Row, Column)

* 면적 기준으로 필터링
aelect_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 100, 99999)

패턴 매칭

* 템플릿 모델 만들기
create_shape_model (TemplateImage, 'auto', rad(-45), rad(90), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)

* 이미지에서 찾기
find_shape_model (SearchImage, ModelID, rad(-45), rad(90), 0.5, 0, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)

결과 텍스트 출력

* 윈도우에 텍스트 출력
disp_message (WindowHandle, '검사 완료', 'window', 12, 12, 'white', 'false')

 

 

 

🌟 HALCON → 다른 언어로 내보내기 (Export)

더보기

HDevelop에서 작성한 코드를 실제 프로젝트에 사용하려면 다른 언어로 변환한다.

  • HDevelop 메뉴 → File →Export
  • 원하는 언어 선택 (C++, C#, Python)
  • 저장
실무에서는 HDevelop에서 알고리즘을 먼저 검증하고, 검증된 코드를 Export해서 프로젝트에 붙이는 방식을 많이 쓴다.

 

 

 

🌟 HALCON에서 자주 쓰는 개념 - ROI (관심 영역)

더보기

ROI(Region of Interest)는 이미지에서 처리할 특정 영역을 지정하는 것이다.

전체 이미지를 처리하면 느리고 오답이 많아질 수 있기 때문에, 검사가 필요한 부분만 잘라서 처리한다.

* 사각형 ROI 생성
gen_rectangle1 (ROI, 100, 100, 300, 400)

* 원형 ROI 생성
gen_circle (ROI, 240, 320, 100)

* ROI를 이미지에 적용 (crop)
reduce_domain (Image, ROI, ImageReduced)

 

 

 

🌟 버전 이름 규칙

더보기

HALCON 버전명은 연도, 월 형식으로 사용한다.

버전명 출시 시기
HALCON 20.11 2020년 11월
HALCON 21.11 2021년 11월
HALCON 24.11 2024년 11월

SteadyProgress 두 가지 릴리즈가 있다.

  • Steady: 안정화 버전 (실무 권장)
  • Progress: 최신 기능이 먼저 들어가는 버전 (기능 우선)

 

 

 

🌟 라이센스 종류

더보기
종류 설명
동글 (USB Dongle) USB 동글이 꽂혀 있어야 실행됨
소프트웨어 라이센스 특정 PC에 고정 (MAC 주소 기반)
평가판 (Evaluation) 일정 기간 무료 사용 가능
학생용 (Student) 비상업적 용도 무료

 

⚠️ 라이센스 파일의 HOSTID = FLEXID = ... 항목이 있으면 동글 전용 라이센스다.

 

 

 

🌟 참고 자료

더보기

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

eull
eull
eull 님의 블로그 입니다.