增加调试信息输出控制

MQTTtest
Matthew 10 months ago
parent 378d9442ac
commit eae96822a2

@ -1614,49 +1614,51 @@ bool CPhoneDevice::OnImageReady(cv::Mat& mat)
XYLOG(XYLOG_SEVERITY_WARNING, "Channel AI Disabled"); XYLOG(XYLOG_SEVERITY_WARNING, "Channel AI Disabled");
} }
#ifdef OUTPUT_CAMERA_DBG_INFO // #ifdef OUTPUT_CAMERA_DBG_INFO
if (mPhotoInfo.outputDbgInfo != 0)
{
cv::Scalar scalarRed(0, 0, 255); // red
cv::Scalar scalarRed(0, 0, 255); // red NdkCamera::CAPTURE_RESULT captureResult = mCamera->getCaptureResult();
NdkCamera::CAPTURE_RESULT captureResult = mCamera->getCaptureResult(); 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" : "μs");
char str[128] = { 0 };
snprintf(str, sizeof(str), "AE=%u AF=%u EXPS=%u%s(%d) ISO=%d AFS=%u AES=%u AWBS=%u SCENE=%d LDR=%d(%u) %0.1fx T=%u FD=%lld",
captureResult.autoExposure, captureResult.autoFocus,
extime, extimeunit, captureResult.compensation, captureResult.sensitivity,
// isnan(captureResult.FocusDistance) ? 0 : captureResult.FocusDistance,
(unsigned int)captureResult.afState, (unsigned int)captureResult.aeState, captureResult.awbState,
captureResult.sceneMode, GpioControl::getLightAdc(), (unsigned int)captureResult.avgY, captureResult.zoomRatio,
(uint32_t)captureResult.duration, captureResult.frameDuration);
// cv::putText(mat, str, cv::Point(0, mat.rows - 20), cv::FONT_HERSHEY_COMPLEX, fontScale, scalarWhite, thickness1, cv::LINE_AA);
char extimeunit[4] = { 0 }; int fs = fontSize * 2 / 3;
unsigned int extime = (captureResult.exposureTime >= 1000000) ? ((unsigned int)(captureResult.exposureTime / 1000000)) : ((unsigned int)(captureResult.exposureTime / 1000)); textSize = ft2->getTextSize(str, fs, -1, &baseline);
strcpy(extimeunit, (captureResult.exposureTime >= 1000000) ? "ms" : "μs"); cv::Point lt(0, mat.rows - fs - 20 * ratio);
char str[128] = { 0 }; cv::Point lt2(0, lt.y - 2 * ratio);
snprintf(str, sizeof(str), "AE=%u AF=%u EXPS=%u%s(%d) ISO=%d AFS=%u AES=%u AWBS=%u SCENE=%d LDR=%d(%u) %0.1fx T=%u FD=%lld", cv::Point rb(0 + textSize.width + 2 * ratio, lt2.y + textSize.height + 8 * ratio);
captureResult.autoExposure, captureResult.autoFocus,
extime, extimeunit, captureResult.compensation, captureResult.sensitivity,
// isnan(captureResult.FocusDistance) ? 0 : captureResult.FocusDistance,
(unsigned int)captureResult.afState, (unsigned int)captureResult.aeState, captureResult.awbState,
captureResult.sceneMode, GpioControl::getLightAdc(), (unsigned int)captureResult.avgY, captureResult.zoomRatio,
(uint32_t)captureResult.duration, captureResult.frameDuration);
// cv::putText(mat, str, cv::Point(0, mat.rows - 20), cv::FONT_HERSHEY_COMPLEX, fontScale, scalarWhite, thickness1, cv::LINE_AA);
int fs = fontSize * 2 / 3; if (rb.x > (int)width - 1)
textSize = ft2->getTextSize(str, fs, -1, &baseline); {
cv::Point lt(0, mat.rows - fs - 20 * ratio); rb.x = (int)width - 1;
cv::Point lt2(0, lt.y - 2 * ratio); }
cv::Point rb(0 + textSize.width + 2 * ratio, lt2.y + textSize.height + 8 * ratio); if (rb.y > (int)height - 1)
{
rb.y = (int)height - 1;
}
cv::Mat roi = mat(cv::Rect(lt2, rb));
cv::Mat clrMat(roi.size(), CV_8UC3, scalarWhite);
double alpha = 0.5;
cv::addWeighted(clrMat, alpha, roi, 1.0 - alpha, 0.0, roi);
if (rb.x > (int)width - 1) // cv::rectangle(mat, lt2, rb,cv::Scalar(255, 255, 255), -1);
{ ft2->putText(mat, str, lt, fs, scalarRed, -1, cv::LINE_AA, false);
rb.x = (int)width - 1; // DrawOutlineText(ft2, mat, str, cv::Point(0, mat.rows - fs - 20 * ratio), fs, scalarWhite, 1);
}
if (rb.y > (int)height - 1)
{
rb.y = (int)height - 1;
} }
cv::Mat roi = mat(cv::Rect(lt2, rb));
cv::Mat clrMat(roi.size(), CV_8UC3, scalarWhite);
double alpha = 0.5;
cv::addWeighted(clrMat, alpha, roi, 1.0 - alpha, 0.0, roi);
// cv::rectangle(mat, lt2, rb,cv::Scalar(255, 255, 255), -1); // #endif // OUTPUT_CAMERA_DBG_INFO
ft2->putText(mat, str, lt, fs, scalarRed, -1, cv::LINE_AA, false);
// DrawOutlineText(ft2, mat, str, cv::Point(0, mat.rows - fs - 20 * ratio), fs, scalarWhite, 1);
#endif // OUTPUT_CAMERA_DBG_INFO
for (vector<OSD_INFO>::const_iterator it = mOsds.cbegin(); it != mOsds.cend(); ++it) for (vector<OSD_INFO>::const_iterator it = mOsds.cbegin(); it != mOsds.cend(); ++it)
{ {

Loading…
Cancel
Save