增加Y分量的输出

serial
Matthew 1 year ago
parent fd9c81eac8
commit 9d399cd8e0

@ -1237,12 +1237,12 @@ bool CPhoneDevice::OnImageReady(cv::Mat& mat)
unsigned int extime = (captureResult.exposureTime >= 1000000) ? ((unsigned int)(captureResult.exposureTime / 1000000)) : ((unsigned int)(captureResult.exposureTime / 1000));
strcpy(extimeunit, (captureResult.exposureTime >= 1000000) ? "ms" : "ns");
char str[128] = { 0 };
snprintf(str, sizeof(str), "AE=%u EXPS=%u%s(%d) ISO=%d AF=%u LDR=%d AFS=%u AES=%u SCENE=%d AWB=%u %0.1fx", captureResult.autoExposure,
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,
captureResult.sensitibity,
captureResult.autoFocus,
// isnan(captureResult.FocusDistance) ? 0 : captureResult.FocusDistance,
GpioControl::getLightAdc(),
GpioControl::getLightAdc(), (unsigned int)captureResult.avgY,
(unsigned int)captureResult.afState,
(unsigned int)captureResult.aeState,
captureResult.sceneMode,

@ -16,6 +16,7 @@
#include <string>
#include <thread>
#include <numeric>
#include <android/log.h>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
@ -738,6 +739,13 @@ void NdkCamera::onImageAvailable(AImageReader* reader)
AImage_getPlaneData(image, 1, &u_data, &u_len);
AImage_getPlaneData(image, 2, &v_data, &v_len);
#if __cplusplus >= 201703L
uint64_t avgy = std::reduce(y_data, y_data + y_len, 0) / y_len;
#else
uint64_t avgy = std::accumulate(y_data, y_data + y_len, 0) / y_len;
#endif
mResult.avgY = avgy;
if (u_data == v_data + 1 && v_data == y_data + width * height && y_pixelStride == 1 && u_pixelStride == 2 && v_pixelStride == 2 && y_rowStride == width && u_rowStride == width && v_rowStride == width)
{
// already nv21 :)

@ -95,6 +95,7 @@ public:
int32_t compensation;
uint8_t sceneMode;
float zoomRatio;
uint8_t avgY;
};
NdkCamera(int32_t width, int32_t height, const CAMERA_PARAMS& params);

Loading…
Cancel
Save