이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
FLIR Ax5 열 적외선 카메라에서 이미지 수집 및 분석
이 예제는 FLIR Ax5 시리즈 열화상 적외선 카메라에서 여러 가지 방법으로 이미지를 수집하고, 미리 보고, 분석하는 방법을 보여줍니다.
이 예제에서는 FLIR A35 카메라를 사용했지만, 사소한 수정을 통해 Ax5 시리즈의 다른 카메라에서도 작동할 것으로 예상됩니다.
요구 사항:
Image Acquisition Toolbox™
Image Processing Toolbox™
GenICam™ 인터페이스용 Image Acquisition Toolbox 지원 패키지
FLIR Ax5 GigE Vision® 열 적외선 카메라
Spinnaker SDK에 포함된 FLIR GenTL Producer
점보 프레임을 지원하는 기가비트 이더넷 네트워크 어댑터
카메라에 연결하고 수집 구성
videoinput 함수가 있는 gentl 어댑터를 사용하여 FLIR Ax5에 대한 연결을 만듭니다. 그런 다음 videoinput 객체의 소스 속성을 가져옵니다.
vid = videoinput("gentl",1,"Mono14")
Summary of Video Input Object Using 'FLIR Systems AB FLIR AX5(00:11:1c:02:7a:ef)'.
Acquisition Source(s): FLIR AX5(00:11:1c:02:7a:ef)_Stream_0
is available.
Acquisition Parameters: 'FLIR AX5(00:11:1c:02:7a:ef)_Stream_0' is the current selected source.
10 frames per trigger using the selected source.
'Mono14' video data to be logged upon START.
Grabbing first of every 1 frame(s).
Log data to 'memory' on trigger.
Trigger Parameters: 1 'immediate' trigger(s) on START.
Status: Waiting for START.
0 frames acquired since starting.
0 frames available for GETDATA.
src = getselectedsource(vid);
기본 비트 심도가 8비트이므로 미리보기 데이터를 전체 비트 심도로 설정합니다. 그렇지 않으면 MATLAB®은 카메라에서 수신한 데이터의 절반만 표시합니다.
vid.PreviewFullBitDepth = "on";카메라 속성 구성
FLIR A35 카메라는 14비트의 비트 심도를 가진 이미지를 반환합니다. 고온 분해능을 갖춘 온도 선형 모드로 이미지 데이터를 제공하도록 카메라를 구성합니다.
src.CMOSBitDepth = "bit14bit"; src.TemperatureLinearMode = "On"; src.TemperatureLinearResolution = "High";
대기 파라미터와 객체 파라미터를 지정합니다. 측정 정확도를 위해 이러한 파라미터는 이미지를 수집하기 전에 올바르게 구성되어야 합니다. 이러한 파라미터에 대한 자세한 내용은 카메라 설명서를 참조하세요.
src.AtmosphericTemperature = 298; src.ObjectEmissivity = 1.0; src.ReflectedTemperature = 298;
온도 분해능 상수는 이미지 데이터를 °C로 변환하는 데 사용됩니다. TemperatureLinearResolution 속성 값에 따라 값을 0.04 또는 0.4로 설정합니다. 적절한 온도 분해능 상수 값은 카메라 설명서를 참조하세요.
switch src.TemperatureLinearResolution case "High" k = 0.04; case "Low" k = 0.4; end
카메라에서 이미지를 수집하여 표시한 다음 RGB 이미지로 저장
getsnapshot 함수를 사용하여 카메라에서 이미지를 얻습니다.
img = getsnapshot(vid);
온도 분해능 값 k를 사용하여 캡처된 이미지 데이터를 °C로 변환합니다. ax5degC 도우미 함수를 사용합니다. 이 예제에서 사용된 헬퍼 함수는 이 예제 파일과 같은 디렉터리에 지원 파일로 첨부되어 있습니다.
imgC = ax5degC(img,k);
표시 색상 한계의 온도 범위를 °C로 지정합니다.
tempRange = [22 70];
지정된 온도 범위와 단위로 thermalImageShow 도우미 함수를 사용하여 열 이미지를 표시합니다. 이미지의 아무 곳이나 클릭하면 해당 픽셀의 온도 정보가 표시됩니다.
thermalImageShow(imgC,tempRange,"\circC");
지정된 온도 범위와 컬러맵을 사용하여 thermal2rgb 도우미 함수를 사용하여 온도 강도 이미지를 RGB 이미지로 변환합니다. 변환된 이미지를 이미지 파일로 저장합니다.
RGB = thermal2rgb(imgC,tempRange,parula);
imwrite(RGB,"thermalImageRGB.png")카메라에서 비디오 획득 및 표시
카메라의 FramesPerTrigger 수집 속성을 구성하여 20개의 이미지를 캡처합니다.
vid.FramesPerTrigger = 20;
getdata 함수를 사용하여 이미지 데이터를 수집합니다.
start(vid) frames = getdata(vid,vid.FramesPerTrigger);
온도 분해능 값 k를 사용하여 ax5degC 도우미 함수를 사용하여 캡처된 이미지 데이터를 °C로 변환합니다.
framesC = ax5degC(frames,k);
이전에 지정한 온도 범위에 montage 함수를 사용하여 획득한 이미지 프레임의 시퀀스를 표시합니다.
montage(framesC,DisplayRange=tempRange)

프레임을 RGB로 변환하고 파룰라 컬러맵을 적용합니다.
frameSize = vid.ROIPosition; numFrames = size(framesC,4); framesRGB = zeros(frameSize(4)-frameSize(2),frameSize(3)-frameSize(1),3,numFrames); for frame = 1:numFrames framesRGB(:,:,:,frame) = thermal2rgb(framesC(:,:,:,frame),tempRange,parula); end
컬러맵을 적용하여 획득한 이미지 프레임의 시퀀스를 색상으로 표시합니다.
montage(framesRGB)

카메라에서 라이브 미리보기 표시
ax5Preview 도우미 함수를 사용하여 카메라에서 대화형 라이브 미리보기를 표시합니다. 카메라의 실시간 이미지는 °C로 변환되어 미리보기 창에 표시됩니다. 라이브 미리보기 이미지의 아무 곳이나 클릭하면 선택한 픽셀의 온도 정보를 볼 수 있습니다.
ax5Preview(vid);

참고 항목
videoinput | getdata | montage | imshow