Я использую камеру Basler Ace, основная программа работает в среде Linux, загружает камеру и файл .pfs, а затем начинает захват кадров.Вот мои данные среды:
ОС: "Ubuntu 16.04.4 LTS"
Язык программирования: C ++
Библиотека: OpenCV 3.3.1
Проблема в том, что я использую Pylon Viewer (5.0.11.10913) для настройки функций камеры, но когда я загружаю этот файл .pfs в свою программу, я получаю другие результаты из Windows.Здесь вы можете увидеть результат
Вот фрагмент кода, используемый для захвата изображения в Linux:
cv::Mat Basler::grab() const
{
cv::Mat bgrImage;
cv::Mat rgbImage;
// This smart pointer will receive the grab result data
Pylon::CGrabResultPtr grabResult;
Pylon::CImageFormatConverter imageConverter;
Pylon::CPylonImage pylonImage;
try {
// Start the grabbing of images
camera->StartGrabbing(1);
imageConverter.OutputPixelFormat = Pylon::PixelType_BGR8packed;
while (camera->IsGrabbing()) {
camera->RetrieveResult(
5000,
grabResult,
Pylon::TimeoutHandling_ThrowException
);
// Image grabbed successfully
if (grabResult->GrabSucceeded()) {
imageConverter.Convert(pylonImage, grabResult);
bgrImage = cv::Mat(
grabResult->GetHeight(),
grabResult->GetWidth(),
CV_8UC3,
(uint8_t*) pylonImage.GetBuffer()
);
cv::cvtColor(bgrImage, rgbImage, CV_BGR2RGB);
return rgbImage;
}
}
} catch (const Pylon::GenericException& exception) {
std::cout << exception.GetDescription() << std::endl;
}
if (rgbImage.empty())
throw utility::Exception("Image is empty");
return rgbImage;
}
и здесь вы можете увидеть содержимое файла .pfs: (извините, я знаю, он слишком длинный, но, возможно, что-то не так с этим файлом)
ExposureAuto Off
BalanceWhiteAuto Off
GainAuto Off
Width 2448
Height 2048
OffsetX 8
OffsetY 4
CenterX 0
CenterY 0
ReverseX 0
ReverseY 0
PixelFormat BGR8
TestImageSelector Off
GainSelector All
Gain 0.00000
GainSelector All
BlackLevelSelector All
BlackLevel 0.00000
BlackLevelSelector All
Gamma 1.00000
DigitalShift 0
RemoveParameterLimitSelector Gain
RemoveParameterLimit 0
RemoveParameterLimitSelector Gain
LightSourcePreset Daylight5000K
BalanceRatioSelector Red
BalanceRatio 1.91382
BalanceRatioSelector Green
BalanceRatio 1.00000
BalanceRatioSelector Blue
BalanceRatio 1.99194
BalanceRatioSelector Red
ColorAdjustmentSelector Red
ColorAdjustmentHue 0.28125
ColorAdjustmentSelector Yellow
ColorAdjustmentHue 0.12500
ColorAdjustmentSelector Green
ColorAdjustmentHue 0.37500
ColorAdjustmentSelector Cyan
ColorAdjustmentHue 0.56250
ColorAdjustmentSelector Blue
ColorAdjustmentHue -0.06250
ColorAdjustmentSelector Magenta
ColorAdjustmentHue 1.93750
ColorAdjustmentSelector Red
ColorAdjustmentSelector Red
ColorAdjustmentSaturation 1.03125
ColorAdjustmentSelector Yellow
ColorAdjustmentSaturation 0.98438
ColorAdjustmentSelector Green
ColorAdjustmentSaturation 1.28125
ColorAdjustmentSelector Cyan
ColorAdjustmentSaturation 1.03906
ColorAdjustmentSelector Blue
ColorAdjustmentSaturation 0.96875
ColorAdjustmentSelector Magenta
ColorAdjustmentSaturation 0.85156
ColorAdjustmentSelector Red
ColorTransformationSelector RGBtoRGB
ColorTransformationValueSelector Gain00
ColorTransformationValue 1.53125
ColorTransformationValueSelector Gain01
ColorTransformationValue -0.31250
ColorTransformationValueSelector Gain02
ColorTransformationValue -0.21875
ColorTransformationValueSelector Gain10
ColorTransformationValue -0.31250
ColorTransformationValueSelector Gain11
ColorTransformationValue 1.84375
ColorTransformationValueSelector Gain12
ColorTransformationValue -0.53125
ColorTransformationValueSelector Gain20
ColorTransformationValue -0.09375
ColorTransformationValueSelector Gain21
ColorTransformationValue -0.43750
ColorTransformationValueSelector Gain22
ColorTransformationValue 1.53125
ColorTransformationSelector RGBtoRGB
ColorTransformationValueSelector Gain00
DemosaicingMode Simple
ExposureMode Timed
ExposureTime 164771.0
AcquisitionBurstFrameCount 1
TriggerSelector FrameBurstStart
TriggerMode Off
TriggerSelector FrameStart
TriggerMode Off
TriggerSelector FrameStart
TriggerSelector FrameBurstStart
TriggerSource Line1
TriggerSelector FrameStart
TriggerSource Line1
TriggerSelector FrameStart
TriggerSelector FrameBurstStart
TriggerActivation RisingEdge
TriggerSelector FrameStart
TriggerActivation RisingEdge
TriggerSelector FrameStart
TriggerDelay 0
AcquisitionFrameRateEnable 0
AcquisitionFrameRate 100.00000
DeviceLinkSelector 0
DeviceLinkThroughputLimitMode On
DeviceLinkSelector 0
DeviceLinkSelector 0
DeviceLinkThroughputLimit 360000000
DeviceLinkSelector 0
ChunkSelector Gain
ChunkEnable 0
ChunkSelector ExposureTime
ChunkEnable 0
ChunkSelector Timestamp
ChunkEnable 0
ChunkSelector LineStatusAll
ChunkEnable 0
ChunkSelector CounterValue
ChunkEnable 0
ChunkSelector SequencerSetActive
ChunkEnable 0
ChunkSelector PayloadCRC16
ChunkEnable 0
ChunkSelector Timestamp
ChunkModeActive 0
AutoTargetBrightness 0.30196
AutoFunctionProfile MinimizeGain
AutoGainLowerLimit 0.00000
AutoGainUpperLimit 36.00000
AutoExposureTimeLowerLimit 29.0
AutoExposureTimeUpperLimit 1000000.0
AutoFunctionROISelector ROI1
AutoFunctionROIWidth 2464
AutoFunctionROISelector ROI2
AutoFunctionROIWidth 2448
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIHeight 2056
AutoFunctionROISelector ROI2
AutoFunctionROIHeight 2048
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIOffsetX 0
AutoFunctionROISelector ROI2
AutoFunctionROIOffsetX 8
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIOffsetY 0
AutoFunctionROISelector ROI2
AutoFunctionROIOffsetY 8
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIUseBrightness 1
AutoFunctionROISelector ROI2
AutoFunctionROIUseBrightness 0
AutoFunctionROISelector ROI1
AutoFunctionROISelector ROI1
AutoFunctionROIUseWhiteBalance 1
AutoFunctionROISelector ROI2
AutoFunctionROIUseWhiteBalance 1
AutoFunctionROISelector ROI1
LUTSelector Luminance
LUTEnable 0
LUTSelector Luminance
LUTSelector Luminance
#I removed LUT value it was too large
LUTSelector Luminance
LineSelector Line1
LineMode Input
LineSelector Line2
LineMode Output
LineSelector Line3
LineMode Input
LineSelector Line4
LineMode Input
LineSelector Line1
LineSelector Line2
LineSource UserOutput1
LineSelector Line1
LineSelector Line1
LineInverter 0
LineSelector Line2
LineInverter 0
LineSelector Line3
LineInverter 0
LineSelector Line4
LineInverter 0
LineSelector Line1
LineSelector Line1
LineDebouncerTime 0.00000
LineSelector Line3
LineDebouncerTime 0.00000
LineSelector Line4
LineDebouncerTime 0.00000
LineSelector Line1
LineSelector Line2
LineMinimumOutputPulseWidth 0.000
LineSelector Line1
UserOutputValueAll 0
TimerSelector Timer1
TimerDuration 10.0
TimerSelector Timer1
TimerSelector Timer1
TimerDelay 0.0
TimerSelector Timer1
TimerSelector Timer1
TimerTriggerSource ExposureStart
TimerSelector Timer1
CounterSelector Counter1
CounterEventSource FrameStart
CounterSelector Counter2
CounterEventSource FrameStart
CounterSelector Counter1
CounterSelector Counter1
CounterResetSource Off
CounterSelector Counter2
CounterResetSource Counter2End
CounterSelector Counter1
EventSelector ExposureEnd
EventNotification Off
EventSelector FrameStart
EventNotification Off
EventSelector FrameBurstStart
EventNotification Off
EventSelector FrameStartOvertrigger
EventNotification Off
EventSelector FrameBurstStartOvertrigger
EventNotification Off
EventSelector CriticalTemperature
EventNotification Off
EventSelector OverTemperature
EventNotification Off
EventSelector FrameStartWait
EventNotification Off
EventSelector FrameBurstStartWait
EventNotification Off
EventSelector ExposureEnd
UserDefinedValueSelector Value1
UserDefinedValue 0
UserDefinedValueSelector Value2
UserDefinedValue 0
UserDefinedValueSelector Value3
UserDefinedValue 0
UserDefinedValueSelector Value4
UserDefinedValue 0
UserDefinedValueSelector Value5
UserDefinedValue 0
UserDefinedValueSelector Value1