Browse Source

处理脸部青黄问题

master
hesuicong 6 days ago
parent
commit
634590e6d4
  1. 4
      libs/MVS/SceneTexture.cpp
  2. 2
      libs/MVS/mask_face_occlusion.py

4
libs/MVS/SceneTexture.cpp

@ -1147,13 +1147,13 @@ bool MeshTexture::ListCameraFaces(FaceDataViewArr& facesDatas, float fOutlierThr @@ -1147,13 +1147,13 @@ bool MeshTexture::ListCameraFaces(FaceDataViewArr& facesDatas, float fOutlierThr
const Pixel8U& pixel = imageData.image(j, i);
// 假设是8位图像,RGB三个通道任一超过250即视为过曝
if (pixel.r > 250 || pixel.g > 250 || pixel.b > 250) {
// continue;
continue;
}
float brightnessPerceptual = (0.299f * pixel.r + 0.587f * pixel.g + 0.114f * pixel.b) / 255.0f;
// printf("brightnessPerceptual=%f\n", brightnessPerceptual);
if (brightnessPerceptual>0.95f)
if (brightnessPerceptual>0.8f)
continue;
// if (!(scene.mesh.invalidFacesRelative.data.contains(idxFace) && scene.is_face_visible_relative(idxFace)))

2
libs/MVS/mask_face_occlusion.py

@ -1353,7 +1353,7 @@ class ModelProcessor: @@ -1353,7 +1353,7 @@ class ModelProcessor:
face_visible = v0_visible | v1_visible | v2_visible
# 使用与CPU版本相同的后续处理
shrunk_visibility = self._shrink_face_visibility(face_visible.cpu().numpy(), 6)
shrunk_visibility = self._shrink_face_visibility(face_visible.cpu().numpy(), 10)
expanded_visibility = self._expand_face_visibility(face_visible.cpu().numpy(), 30)
shrunk_visibility2 = self._shrink_face_visibility(face_visible.cpu().numpy(), 50)
expanded_edge = expanded_visibility & ~shrunk_visibility2

Loading…
Cancel
Save