Imatest IT 구매 라이브러리

Imatest IT Acquisition 라이브러리를 사용하면 개발자는 지원되는 장치에서 직접 이미지를 획득할 수 있으며, Imatest IT 와 마찬가지로 동적 링크 라이브러리(DLL) 형태로 제공됩니다. Acquisition 라이브러리에서 반환된 이미지는 Imatest의 강력한 이미지 품질 분석 루틴을 통해 분석하기 위해 Imatest IT 라이브러리로 전달될 수 있습니다. Imatest IT Acquisition 라이브러리는 Imatest Master 와 동일한 장치 및 인터페이스를 지원합니다.

*참고* Imatest 5.0 버전부터 이미지 획득 기능은 Imatest Master에서 사용할 수 있습니다. 이전에는 이 기능이 단종된 Imatest IS에 있었습니다.

에피판   STM 도관
옴니비전  그래프인 이지랩
도시바 ON 세미 데브웨어

그리고 그 외에도 많은 사람들이 있습니다 .

함수 프로토타입 및 정의

Acquisition 라이브러리 사용 방법은 Imatest IT 와 유사합니다. 프로그램은 C/C++ 프로그램 내에서 호출하여 시작합니다. 다음은 (Matlab 문서에서 발췌한) 단계입니다.

  1. 변수를 선언하고 입력 인수를 처리/유효성 검사합니다.
  2. mclInitializeApplication() 함수를 호출하고 성공 여부를 테스트하십시오. 이 함수는 전역 MCR 상태를 설정하고 MCR 인스턴스 생성을 활성화합니다.
  3. 각 라이브러리에 대해 한 번씩 Initialize 메서드를 호출하여 해당 라이브러리에 필요한 MCR 인스턴스를 생성합니다.
  4. 라이브러리의 함수를 호출하고 결과를 처리합니다. (이것이 프로그램의 주요 부분입니다.)
  5. 각 라이브러리에 대해 한 번씩, 연결된 MCR을 파괴하기 위해 Terminate를 호출하십시오.
  6. 전역 MCR 상태와 관련된 리소스를 해제하려면 mclTerminateApplication()을 호출하십시오.
  7. 변수를 정리하고, 파일을 닫는 등의 작업을 수행한 후 종료합니다.

MATLAB 기반 C/C++ 라이브러리 처리에 대한 자세한 내용은 여기 의 "라이브러리" 하위 섹션에서 확인할 수 있습니다. mwArray 도 참조하십시오.

imatest 라이브러리의 경우, 이러한 함수는 다음과 같은 호출 형식을 갖습니다.
imatest_libraryInitialize(void) 라이브러리를 초기화하려면.
imatest_libraryTerminate(void) 도서관을 닫기 위해.
imatestPrintStackTrace(void) 라이브러리 내의 스택 트레이스를 해결하려면 다음과 같이 하십시오.
mlxAcquire_image ( int nlhs , mxArray *plhs[] , int nrhs , mxArray *prhs[]) acquire_image 함수를 호출하는 C 코드입니다. 아래의 매개변수 명세를 참조하십시오.(C) 공유 라이브러리 호출을 참조하십시오.
acquire_image( int nargout, mwArray &im_orig, mwArray &vstr, const mwArray &source_id, const mwArray &varargin); 지원되는 기기에서 직접 다운로드합니다.
list_devices( int nargout, mwArray &devices); 표준 인터페이스 외에 연결된 장치(Epiphan, Omnivision, Toshiba, STM, Graphin 및 ON Semi) 목록을 표시합니다.

mwArray 및 mxArray 타입의 매개변수는 MATLAB 배열 타입입니다. nargout 및 nlhs 매개변수는 출력 매개변수의 개수를 지정하며, acquire_image() 및 list_devices() 함수 모두에서 1로 설정해야 합니다. *plhs[] , &im_orig , &vstr 및 &devices 매개변수는 각각 acquire_image() 및 list_devices() 함수에서 반환되는 데이터의 자리 표시자입니다. list_devices() 함수 호출은 다음과 같습니다. 개발자가 Epiphan, Omnivision, Toshiba, STM, Graphin 및 ON Semi 이외의 장치에서 데이터를 가져오려는 경우에만 필요합니다.

매개변수 사양표

오류 발생 가능성을 최소화하기 위해 프로그램 이름과 매개변수에는 전체 경로명이 포함되어야 합니다.

const mwArray &source_id [입력]

원하는 기기의 ID 번호(mxDouble 형식):

0-> 지원되는 이미지 파일을 로드합니다

1-> 에피판

2-> 옴니비전

3-> 도시바

4-> STM 도관

5-> Graphin EasyLab

6-> ON 세미 데브웨어

7-> 안드로이드

또는 list_devices () 호출에서 반환되는 DeviceID (7보다 큰 값)를 사용할 수도 있습니다.

const mwArray &varargin [입력]

mxClassID = mxCELL_CLASS로 구성된 1~4개 매개변수의 mwArray입니다. Omnivision 및 Epiphan의 경우에만 두 번째 매개변수가 필요합니다.

varargin {1}: 이미지가 행 우선 이미지이고 분석을 위해 RGB 평면 열 우선 이미지로 변환해야 하는 경우 1.0으로 설정합니다. 그렇지 않으면 0으로 설정합니다.

varargin {2}: source_id가 2 (Omnivision)이거나 source_id가 0 (File)인 경우, 이는 Imatest *.ini 파일의 전체 경로명이어야 합니다.

source_id가 1 (Epiphan)인 경우, 이 매개변수는 Epiphan Capture 도구에서 장치 순서에 해당하는 Epiphan 채널(0.0 또는 1.0)을 선택하는 데 사용됩니다.

varargin {3}: source_id > 7 인 경우 list_devices ()에서 반환된 장치 이름입니다.

source_id가 0인 경우, 이미지 파일의 전체 경로명입니다.

varargin {4}: list_devices ()에서 반환되는 원하는 이미지 획득 형식입니다. source_id가 7보다 큰 소스에서 획득하는 경우에만 필요합니다.

mwArray &im_orig [출력]

반환된 이미지를 저장할 mwArray입니다. acquire_image() 함수가 성공적으로 완료되면 이 mwArray에 이미지가 저장됩니다. 이 이미지는 Imatest IT에 전달할 수 있습니다.

mwArray &vstr [출력]

반환된 vstr MATLAB 구조체를 저장할 mwArray입니다. source_id 가 1~7 이외 의 장치에서 데이터를 수집하는 경우 vstr 구조체의 두 필드가 중요합니다.

  • vid_format - 반환된 im_orig 에 사용된 이미지 획득 형식
  • device_name - 반환된 im_orig 에 대해 획득한 장치의 이름

mwArray 및 장치 [출력]

mwArray는 구조체의 셀 배열, 즉 mxClassID = mxCELL_CLASS인 mwArray가 mxClassID = mxSTRUCT_CLASS인 mwArray를 포함하는 배열입니다. MATLAB 구조체는 다음과 같은 필드를 가지고 있습니다.

  • DefaultFormat - 기본 이미지 캡처 형식을 나타내는 문자열입니다.
  • DeviceName : 장치 이름을 포함하는 문자열입니다.
  • DeviceID : 장치 ID를 포함하는 uint16 타입의 값입니다. 이 값은 acquire_image() 함수에 source_id로 전달되어야 합니다.
  • SupportedFormats : 장치에서 지원하는 이미지 캡처 형식 목록이 포함된 문자열로 구성된 MATLAB 셀 배열입니다.
  • 어댑터 : 장치에 접근하는 데 사용되는 어댑터의 이름을 포함하는 문자열입니다(예: 'gige', 'winvideo' 등).

예

이미지 파일 불러오기

이 예제에서는 이미지 파일("C:\Sample_dir\example.jpg")을 불러와 행 우선 방식의 인터리브 이미지 형식으로 이미지 데이터를 반환합니다.

// 출력 매개변수
mwArray im_orig, vstr;

// source_id

mwArray source_id((mxDouble(0));

// toRGBRows

mwArray toRGBrows = mwArray(1,1,mxDOUBLE_CLASS);
toRGBrows=1.0; // 이 값을 1로 설정하면 이미지가 행 우선 형식으로 표시됩니다.

// Imatest INI 파일

std::string m_ini_file = "C:\Sample_dir\imatest-v2.ini";

mwArray ini_file(m_ini_file.c_str());

// 이미지 파일

std::string m_image_file = "C:\Sample_dir\example.jpg";

mwArray image_file(m_image_file.c_str());

// 가변 인자 셀 배열을 설정합니다.
mwArray vararginParam = mwArray(1,3,mxCELL_CLASS);
vararginParam.Get(1,1).Set(toRGBrows);
vararginParam.Get(1,2).Set(ini_file); // INI 파일 경로
vararginParam.Get(1,3).Set(image_file);

노력하다
{
acquire_image(2, im_orig, vstr, source_id, vararginParam);
}
catch(mwException& e)
{
std::cout << "실행 오류!" << std::endl;
std::cerr << e.what() << std::endl;
e.print_stack_trace();
}

source_id가 1~7인 기기에서 데이터를 수집합니다.

acquire_image() 사용 예시를 보려면 오픈 소스 OperatorConsole 의 ImatestLibAcq.cpp 파일에 있는 ImatestLibAcq::CaptureFrame() 멤버 함수를 참조하십시오.

source_id가 7보다 큰 장치에서 데이터를 수집합니다.

획득 라이브러리에 제공된 샘플 프로젝트를 참조하십시오.

메모