增加微秒的设置

hdrplus
Matthew 1 year ago
parent 5eef0e23f7
commit 5107e26edf

@ -1149,6 +1149,7 @@ bool CPhoneDevice::TakePhoto(const IDevice::PHOTO_INFO& photoInfo, const vector<
params.autoExposure = mPhotoInfo.autoExposure;
params.focusTimeout = mPhotoInfo.focusTimeout * 1000;
params.exposureTime = mPhotoInfo.exposureTime;
params.expsTimeUs = mPhotoInfo.expsTimeUs;
params.sensitivity = mPhotoInfo.sensitivity;
params.compensation = mPhotoInfo.compensation;
params.orientation = mPhotoInfo.orientation;
@ -1161,6 +1162,7 @@ bool CPhoneDevice::TakePhoto(const IDevice::PHOTO_INFO& photoInfo, const vector<
{
params.autoExposure = 0;
params.exposureTime = 1200;
params.expsTimeUs = 0;
params.sensitivity = 1200;
}
}
@ -1513,7 +1515,7 @@ bool CPhoneDevice::OnImageReady(cv::Mat& mat)
char extimeunit[4] = { 0 };
unsigned int extime = (captureResult.exposureTime >= 1000000) ? ((unsigned int)(captureResult.exposureTime / 1000000)) : ((unsigned int)(captureResult.exposureTime / 1000));
strcpy(extimeunit, (captureResult.exposureTime >= 1000000) ? "ms" : "ns");
strcpy(extimeunit, (captureResult.exposureTime >= 1000000) ? "ms" : "μs");
char str[128] = { 0 };
snprintf(str, sizeof(str), "AE=%u EXPS=%u%s(%d) ISO=%d AF=%u LDR=%d(%u) AFS=%u AES=%u SCENE=%d AWB=%u %0.1fx", captureResult.autoExposure,
extime, extimeunit, captureResult.compensation,

@ -559,8 +559,13 @@ int NdkCamera::open(const std::string& cameraId) {
status = ACaptureRequest_setEntry_i32(capture_request, ACAMERA_CONTROL_AE_TARGET_FPS_RANGE,2,fpsRange);
}
if (afSupported && m_params.autoFocus) {
uint8_t nrMode = ACAMERA_NOISE_REDUCTION_MODE_FAST;
status = ACaptureRequest_setEntry_u8(capture_request, ACAMERA_NOISE_REDUCTION_MODE, 1, &nrMode);
uint8_t edgeMode = ACAMERA_EDGE_MODE_FAST;
status = ACaptureRequest_setEntry_u8(capture_request, ACAMERA_EDGE_MODE, 1, &edgeMode);
if (afSupported && m_params.autoFocus) {
if (!m_params.zoom)
{
@ -573,7 +578,7 @@ int NdkCamera::open(const std::string& cameraId) {
int32_t sizeY = activeArraySize[1] >> 4;
int32_t afRegions[] = {centerX - sizeX, centerY - sizeY, centerX + sizeX, centerY + sizeY, 1000};
status = ACaptureRequest_setEntry_i32(capture_request, ACAMERA_CONTROL_AF_REGIONS, 5, afRegions);
// status = ACaptureRequest_setEntry_i32(capture_request, ACAMERA_CONTROL_AF_REGIONS, 5, afRegions);
if (status == ACAMERA_OK)
{
// m_imagesCaptured = ~0;
@ -672,9 +677,10 @@ int NdkCamera::open(const std::string& cameraId) {
int32_t sensitivity = m_params.sensitivity;
status = ACaptureRequest_setEntry_i32(capture_request, ACAMERA_SENSOR_SENSITIVITY, 1, &sensitivity);
}
if (m_params.exposureTime > 0)
if (m_params.exposureTime > 0 || m_params.expsTimeUs > 0)
{
int64_t exposureTime = ((int64_t)m_params.exposureTime) * 1000000;
exposureTime += ((int64_t)m_params.expsTimeUs) * 1000;
status = ACaptureRequest_setEntry_i64(capture_request, ACAMERA_SENSOR_EXPOSURE_TIME, 1, &exposureTime);
}
}

@ -77,6 +77,7 @@ public:
unsigned int zoom;
unsigned int reserved : 7;
unsigned int exposureTime; // ms
unsigned short expsTimeUs; // μs
unsigned int sensitivity;
int compensation;
float zoomRatio;

Loading…
Cancel
Save