FFC 마법사 샘플 프로그램
Eureys는 계수를 계산하고 Coaxlink 카드를 대상으로하는 이진 파일로 압축하는 ffc-wizard
라는 샘플 응용 프로그램의 소스 코드를 제공합니다.
이 샘플 코드의 목적은 세 가지입니다:
□ | 보정 절차를 통해 사용자를 안내합니다; |
□ | 이 문서에서 설명하는 것을 기술적으로 번역합니다: |
□ | 커스텀 애플리케이션 개발을 위한 블록 빌딩을 제공합니다. |
소스 코드는 단일 소스 파일에 있습니다: src/ffc-wizard.cpp
. 응용 프로그램을 작성하는 것은 간단해야 합니다.
□ | Windows의 경우 Microsoft Visual Studio 프로젝트 파일 ffc-wizard.vcproj 가 있습니다. |
□ | Linux 및 macOS의 경우 Makefile 가 제공됩니다. |
마법사는 콘솔 응용 프로그램입니다. 플래그 -h(또는 --help)가 제공되면 도움말 메시지가 표시됩니다:
도움말 메시지 받기
> ffc-wizard.exe --help 플랫 필드 보정 마법사 Fcc-마법사 [OPTIONS] 선택: --if=INT 사용할 GenTL 인터페이스의 색인 --dev=INT 사용할 GenTL 장치의 색인 --ds=INT 사용할 GenTL 데이터 스트림의 색인 --average=INT 평균 이미지 수(기본값: 10) --roi_x=INT ROI 왼쪽 상단 모서리의 픽셀 단위 가로 오프셋(기본값: 0) --roi_y=INT ROI 왼쪽 상단 모서리의 픽셀 단위 세로 오프셋(기본값: 0, 라인 스캔에는 무시됨) --roi_width=INT ROI 너비(기본값: 전체 이미지) --roi_height=INT ROI 높이(기본값: 전체 이미지, 라인 스캔에서는 무시) --balance 각 구성 요소가 아닌 모든 구성 요소에서 플랫 이미지 평균 계산 --Linescan 즉, 강제 라인 스캔 모드. 평균 이미지 라인(라인 스캔 카드에 대해 자동으로 활성화됨) --dark-setup=SCRIPT 어두운 수집을 위한 설정 스크립트 경로 --flat-setup=SCRIPT 플랫 수집을 위한 설정 스크립트 경로 --timeout=MS 이미지를 기다리는 최대 시간(밀리초) (기본값: 1000) --dark-histogram=FILE 출력하고 열 평균 어두운 이미지의 히스토그램 html 페이지 경로 --flat-histogram=FILE 출력하고 열 평균 평균 이미지의 히스토그램 html 페이지 경로 --output-ffc=FILE 계수 출력 파일 경로(Coaxlink ffc 이진 형식) --load-ffc=FILE Coaxlink 계수 분할로 계수로드(기본값: 계산된 계수) --no-interact 사용자 상호 작용 건너뛰기 -h --help 도움말 메시지 표시 참고: ROI 옵션을 사용하면 평균을 계산하는 동안 직사각형 영역을 정의할 수 있으며, 비네팅이 적용되는 이미지에서 테두리 근처의 픽셀을 제거하는 데 유용합니다.
옵션 세부 정보
플래그 | 세부 정보 |
---|---|
--if , --def , --ds |
사용(및/또는 구성)할 데이터 스트림을 식별하는 GenTL 모듈의 인덱스 |
--average
|
다크 및 플랫 수집을 위해 수집할 이미지의 수; 이러한 수집의 평균만 보정 절차에 사용됩니다 |
--roi_x , --roi_y , --roi_width , --roi_height |
평면 이미지(average(Flat))의 평균 픽셀 값을 계산할 때 고려할 선택적 직사각형 영역. 이것은 각 픽셀에 대한 이득 값의 평가에 영향을 미칩니다 |
--balance
|
화이트 밸런스를 활성화합니다. 즉, 컬러 픽셀 성분의 계수가 성분 값을 밸런싱하도록 계산되는지의 여부; 분명히 이것은 평평한 이미지를 수집하기 위해 사용하는 플랫한 배경이 가능한 한 실제 회색에 가까울 것을 요구합니다 (모든 RGB 구성 요소는 동일한 값을 가짐) |
--dark-setup , --flat-setup |
다크 및 플랫 수집 전에 실행하기 위한 선택적 구성 스크립트 |
--dark-histogram , --flat-histogram |
선택. 다크 및 플랫 이미지 픽셀 구성 요소의 히스토그램을 보여주는 출력 파일의 경로. 이것은 플랫 이미지의 변화뿐만 아니라 암 전류 변화의 시각적 개요를 제공합니다 |
--no-interact
|
일반적으로 마법사는 다크 및 평면 수집을 시작하기 전에 사용자가 시스템을 설정할 때까지 기다립니다. 이 플래그가 사용되면 마법사는 사용자를 기다리지 않고 (생성된 히스토그램 html 페이지도 열지 않습니다) |
다음은 화이트 밸런스 기능을 사용하여 FFC 계수 (coefficients.ffc파일에 기록)를 생성하는 예제입니다. 콘솔 창에서 실행하는 명령은 다음과 같습니다:
어두운 수집을 위한 설정을 준비하고 준비가 되면 Enter를 누를 수 있습니다. 그런 다음 일련의 어두운 이미지를 수집하고 다음 단계에 대한 지침을 표시합니다
평면 수집을 위한 설정을 준비하고 준비가 되면 Enter를 누를 수 있습니다. 그런 다음 일련의 평면 이미지를 획득하고 해당 계수를 계산하여 coefficients.ffc
파일에 씁니다.
나중에 다음과 같이 load-ffc 스크립트를 실행하여 genicam-browser에서 계수를 로드할 수 있습니다:
그런 다음 이전에 만든 파일 계수를 선택할 수 있습니다.
그 순간부터 계수가 Coaxlink 메모리에 로드되고 FFC 처리가 활성화됩니다.
계수의 패킹뿐만 아니라 캘리브레이션 절차는 주 기능 ffcWizard
에 의해 제어됩니다.
ffcWizard
태스크
태스크 | 기능별 완료 |
---|---|
일련의 다크 이미지를 획득하여 평균 다크 이미지를 생성합니다 | acquireImages
|
일련의 평면 이미지를 수집하여 평평한 이미지를 만듭니다 | acquireImages
|
각 픽셀 구성 요소에 대한 gain 값 계산 |
computeGain
|
다크 픽셀 구성 요소 값을 offset 값으로 사용 |
computeOffset
|
offset and gain 값을 16비트 리틀 엔디안 값으로 패킹 |
packCoefficients
|
팩된 계수를 2진 파일에 기록 | savePackedCoefficients
|
샘플 애플리케이션은 이미 다음과 같은 몇 가지 일반적인 픽셀 형식을 지원합니다: Mono
, RGB
, RGBa
and Bayer
.
제한: 샘플 에플리케이션의 복잡성을 제한하기 위해 모든 구성 요소의 크기가 동일해야 합니다 (픽셀 당 여러 구성 요소가 있는 픽셀 형식의 경우). addImage
and addComponents
를 업데이트하여 다양한 구성 요소 크기를 지원하는 픽셀 형식을 지원할 수 있습니다.
이전의 제한 조건 하에서 새로운 픽셀 형식을 지원하려면 두 가지 기능을 수정해야 합니다:
1. | Image::getComponentsPerPixel - PFNC 이름으로 식별되는 새로운 형식의 픽셀 당 구성 요소 수를 반환합니다. |
2. | 새 형식 (PFNC 이름으로 식별됨)의 픽셀 구성 요소가 이미지에 어떻게 배치되는지 설명하는 Image::getComponentFilters , to return a std::vector of ComponentFilter 객체 |
다크하고 플랫한 이미지의 ComponentFilter
objects are used to separate the processing of the different pixel components while evaluating the Gain
and Offset
values. For example, in RGB
format, the FFC coefficients related to the Red
components are computed using the Red
구성 요소입니다.
픽셀 구성 요소 레이아웃 구성에 대한 자세한 내용은 Image::getComponentFilters
소스 코드를 참조하십시오.