From ebc1cfdf64c515a5116636a92d06db902c3386a8 Mon Sep 17 00:00:00 2001 From: hesuicong Date: Tue, 10 Feb 2026 16:34:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/MVS/ColorComparisonFace.cpp | 11 +++++++++-- libs/MVS/ColorComparisonFace.h | 2 ++ libs/MVS/SceneTexture.cpp | 3 ++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/libs/MVS/ColorComparisonFace.cpp b/libs/MVS/ColorComparisonFace.cpp index 482ee2b..ed4b636 100644 --- a/libs/MVS/ColorComparisonFace.cpp +++ b/libs/MVS/ColorComparisonFace.cpp @@ -69,10 +69,11 @@ ColorComparisonFace::ColorComparisonFace(const std::string& dir) : outputDir(dir // 添加颜色信息(带图像区域) void ColorComparisonFace::addColorInfo(int faceId, const MeshColor& gaussianColor, + const MeshColor& originalColor, const cv::Mat& imageRegion, float distance, float threshold, const std::string& filename) { - ColorInfo info = {faceId, gaussianColor, imageRegion.clone(), distance, threshold, filename}; + ColorInfo info = {faceId, gaussianColor, originalColor, imageRegion.clone(), distance, threshold, filename}; faceViewColorMap[faceId][filename].push_back(info); printf("addColorInfo faceId=%d", faceId); } @@ -272,11 +273,17 @@ void ColorComparisonFace::createBatchComparison(int maxBlocksPerRow, int maxFace // 添加颜色值 cv::putText(faceImage, - cv::format("Gaussian: R=%d, G=%d, B=%d", + cv::format("Gauss: (%d,%d,%d)", info.gaussianColor[0], info.gaussianColor[1], info.gaussianColor[2]), cv::Point(blockX + 10, infoY + 60), cv::FONT_HERSHEY_SIMPLEX, 0.35, cv::Scalar(0, 0, 0), 1); + cv::putText(faceImage, + cv::format("Orgin: (%d,%d,%d)", + info.originalColor[0], info.originalColor[1], info.originalColor[2]), + cv::Point(blockX + 140, infoY + 60), + cv::FONT_HERSHEY_SIMPLEX, 0.35, cv::Scalar(0, 0, 0), 1); + // 添加距离和阈值 cv::putText(faceImage, cv::format("Distance: %.4f", info.distance), diff --git a/libs/MVS/ColorComparisonFace.h b/libs/MVS/ColorComparisonFace.h index a29f284..9334dd0 100644 --- a/libs/MVS/ColorComparisonFace.h +++ b/libs/MVS/ColorComparisonFace.h @@ -27,6 +27,7 @@ private: struct ColorInfo { int faceId; MeshColor gaussianColor; + MeshColor originalColor; cv::Mat imageRegion; // 存储实际图像区域 float distance; float threshold; @@ -47,6 +48,7 @@ public: // 添加颜色信息(带图像区域) void addColorInfo(int faceId, const MeshColor& gaussianColor, + const MeshColor& originColor, const cv::Mat& imageRegion, float distance, float threshold, const std::string& filename); diff --git a/libs/MVS/SceneTexture.cpp b/libs/MVS/SceneTexture.cpp index d0efe41..6526dec 100644 --- a/libs/MVS/SceneTexture.cpp +++ b/libs/MVS/SceneTexture.cpp @@ -78,7 +78,7 @@ using namespace MVS; #define TEXOPT_INFERENCE_TRWS 2 #define TEXOPT_INFERENCE TEXOPT_INFERENCE_LBP #define MASK_FACE_OCCLUSION -// #define TEST +#define TEST // #define USE_CUDA @@ -1807,6 +1807,7 @@ bool MeshTexture::ListCameraFaces(FaceDataViewArr& facesDatas, float fOutlierThr if (g_colorComparisonFace) { g_colorComparisonFace->addColorInfo(idxFace, gaussianMeshColor, + originalColor, imageRegion, colorDistance, threshold, filename); printf(" ✅ 面 %d 已添加到批处理器\n", idxFace);