Detailed Description
The PFeverCamProcessor class is the main class for handling FeverCam processing for person temperature reading.
It automatically connects to a FeverCam from its IP address (color video stream handling is user's responsibility) It processes images and provides methods to:
- Estimate face temperature (and temperature measurement confidence)
- Locate black-body
- Create side-by-side image of color and thermal camera
Definition at line 40 of file PFeverCamProcessor.h.
#include <PFeverCamProcessor.h>
Constructor & Destructor Documentation
◆ PFeverCamProcessor() [1/2]
PFeverCamProcessor::PFeverCamProcessor | ( | ) |
Constructs an empty, inactive FeverCam processor.
◆ PFeverCamProcessor() [2/2]
PFeverCamProcessor::PFeverCamProcessor | ( | const PFeverCamProcessor & | other | ) |
Constructs a shared copy of other.
◆ ~PFeverCamProcessor()
|
virtual |
Destroys this object.
Member Function Documentation
◆ CreateCompositeImage()
PResult PFeverCamProcessor::CreateCompositeImage | ( | const PImage & | i_colorImg, |
const PDateTime & | i_timestamp, | ||
PImage & | o_composite, | ||
int32 | i_maxDelayMs = 1000 |
||
) |
Creates composite image from Color and synchronized temperature source images side by side smallest image is scaled-up to have same height.
Fails if no matching temperature image could be found
◆ Deactivate()
void PFeverCamProcessor::Deactivate | ( | ) |
Stops FeverCam temperature stream capture and processing.
◆ EstimateFaceTemperature()
PResult PFeverCamProcessor::EstimateFaceTemperature | ( | const PDetection & | detectedFace, |
double & | o_temperature, | ||
double & | o_confidence, | ||
int32 | i_maxDelayMs = 1000 |
||
) |
Estimate temperature for face detected in color video stream Face temperature is already corrected (as skin temperature is slightly lower than actual body temperature) temperature confidence is set to 0 if black-body was supposed to be masked.
Fails if:
- Calibration is invalid
- No matching frame could be found (closer than maxDelayMs)
- No temperature change was detected (either calibration is incorrect or detected face is actually not a human face)
◆ GetCalibration() [1/2]
const PFeverCamCalibration& PFeverCamProcessor::GetCalibration | ( | ) | const |
Retrieves calibration for direct usage (no change possible)
◆ GetCalibration() [2/2]
PFeverCamCalibration& PFeverCamProcessor::GetCalibration | ( | ) |
Retrieves calibration for modification.
◆ GetTemperatureVideoSource()
PResult PFeverCamProcessor::GetTemperatureVideoSource | ( | PInputVideoStream & | o_temperatureStream | ) | const |
Outputs the currently used temperature stream that can be used to modify FeverCam settings (see PInputVideoStreamFeverCam plugin parameters for more details)
Fails if temperature stream is not available
◆ GetThermalFrameAt()
PResult PFeverCamProcessor::GetThermalFrameAt | ( | const PDateTime & | i_dt, |
PFrame & | o_tframe, | ||
int32 | i_maxDelayMs = 1000 |
||
) |
Retrieves temperature frame at input timestamp.
Fails if No corresponding image could be found
◆ HandleFeverCam()
Tries to handle FeverCam available at provided IP addr Disconnects any previously connected fever cam, sets URI correctly and starts processing Fails if provided IP addr is not joinable or is not a valid FeverCam.
◆ IsActive()
bool PFeverCamProcessor::IsActive | ( | ) | const |
Returns true if processor is active, i.e.
connected to a FeverCam temperature stream
◆ LocateBlackBody()
PResult PFeverCamProcessor::LocateBlackBody | ( | const PFrame & | i_colorFrame, |
PList & | o_candidateRectList, | ||
int32 | i_maxDelayMs = 1000 |
||
) |
Locates black body in color frame using synchronized temperature frame and calibration for better localization.
Fails if:
- Input image is empty
- No corresponding image could be found
- Calibration is invalid
◆ SetCalibration()
void PFeverCamProcessor::SetCalibration | ( | const PFeverCamCalibration & | i_calib | ) |
Sets calibration.
Friends And Related Function Documentation
◆ PFeverCamProcessorImpl
|
friend |
Definition at line 142 of file PFeverCamProcessor.h.