明亮问题处理
This commit is contained in:
1 parent
9c1b1c3944
commit
338243fa14
1 file changed
+45
-11
+45
-11
@@ -3035,12 +3035,48 @@ bool MeshTexture::CreateVirtualFaces6(FaceDataViewArr& facesDatas, FaceDataViewA
|
|||||||
|
|
||||||
if (angleDeg <= 45.0f)
|
if (angleDeg <= 45.0f)
|
||||||
{
|
{
|
||||||
filteredCams.push_back(idxView);
|
// filteredCams.push_back(idxView);
|
||||||
|
|
||||||
|
//*
|
||||||
|
float brightnessScore = CalculateBrightnessScore(imageData); // 亮度评分函数
|
||||||
|
float angleScore = 1.0f - (angleDeg / 45.0f);
|
||||||
|
float qualityScore = 0.0f;
|
||||||
|
const FaceDataArr& centerFaceDatas = facesDatas[virtualFaceCenterFaceID];
|
||||||
|
for (const FaceData& fd : centerFaceDatas) {
|
||||||
|
if (fd.idxView == idxView) {
|
||||||
|
qualityScore = fd.quality;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
qualityScore = std::max(0.0f, std::min(1.0f, qualityScore));
|
||||||
|
float overallScore = 0.5f * angleScore + 0.3f * brightnessScore + 0.2f * qualityScore;
|
||||||
|
if (overallScore > 0.4f) {
|
||||||
|
filteredCams.push_back(idxView);
|
||||||
|
}
|
||||||
|
//*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
filteredCams.push_back(idxView);
|
// filteredCams.push_back(idxView);
|
||||||
|
|
||||||
|
//*
|
||||||
|
float brightnessScore = CalculateBrightnessScore(imageData); // 亮度评分函数
|
||||||
|
float angleScore = 1.0f - (angleDeg / 60.0f);
|
||||||
|
float qualityScore = 0.0f;
|
||||||
|
const FaceDataArr& centerFaceDatas = facesDatas[virtualFaceCenterFaceID];
|
||||||
|
for (const FaceData& fd : centerFaceDatas) {
|
||||||
|
if (fd.idxView == idxView) {
|
||||||
|
qualityScore = fd.quality;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
qualityScore = std::max(0.0f, std::min(1.0f, qualityScore));
|
||||||
|
float overallScore = 0.5f * angleScore + 0.3f * brightnessScore + 0.2f * qualityScore;
|
||||||
|
if (overallScore > 0.3f) {
|
||||||
|
filteredCams.push_back(idxView);
|
||||||
|
}
|
||||||
|
//*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3359,9 +3395,8 @@ bool MeshTexture::CreateVirtualFaces6(FaceDataViewArr& facesDatas, FaceDataViewA
|
|||||||
}
|
}
|
||||||
//*/
|
//*/
|
||||||
|
|
||||||
if (validViewsSize<=0&&false)
|
if (validViewsSize<=0)
|
||||||
{
|
{
|
||||||
//*
|
|
||||||
// int nSize = sortedViews.size(); // (sortedViews.size() > 3) ? 3 : sortedViews.size();
|
// int nSize = sortedViews.size(); // (sortedViews.size() > 3) ? 3 : sortedViews.size();
|
||||||
|
|
||||||
// // 计算初始平均值
|
// // 计算初始平均值
|
||||||
@@ -3476,7 +3511,6 @@ bool MeshTexture::CreateVirtualFaces6(FaceDataViewArr& facesDatas, FaceDataViewA
|
|||||||
virtualFaceData.quality = totalQuality2 / validIndices.size();
|
virtualFaceData.quality = totalQuality2 / validIndices.size();
|
||||||
virtualFaceData.color = totalColor2 / validIndices.size();
|
virtualFaceData.color = totalColor2 / validIndices.size();
|
||||||
}
|
}
|
||||||
//*/
|
|
||||||
}
|
}
|
||||||
else if (validViewsSize>0&&validViewsSize<=2&&false)
|
else if (validViewsSize>0&&validViewsSize<=2&&false)
|
||||||
{
|
{
|
||||||
@@ -3651,7 +3685,7 @@ bool MeshTexture::CreateVirtualFaces6(FaceDataViewArr& facesDatas, FaceDataViewA
|
|||||||
|
|
||||||
// if (colorDistance <= maxColorDeviation &&
|
// if (colorDistance <= maxColorDeviation &&
|
||||||
// luminanceDistance <= maxLuminanceDeviation)
|
// luminanceDistance <= maxLuminanceDeviation)
|
||||||
if (luminanceDistance <= maxLuminanceDeviation)
|
// if (luminanceDistance <= maxLuminanceDeviation)
|
||||||
{
|
{
|
||||||
validIndices.push_back(n);
|
validIndices.push_back(n);
|
||||||
}
|
}
|
||||||
@@ -4339,7 +4373,7 @@ bool MeshTexture::CreateVirtualFaces62(FaceDataViewArr& facesDatas, FaceDataView
|
|||||||
}
|
}
|
||||||
qualityScore = std::max(0.0f, std::min(1.0f, qualityScore));
|
qualityScore = std::max(0.0f, std::min(1.0f, qualityScore));
|
||||||
float overallScore = 0.5f * angleScore + 0.3f * brightnessScore + 0.2f * qualityScore;
|
float overallScore = 0.5f * angleScore + 0.3f * brightnessScore + 0.2f * qualityScore;
|
||||||
if (overallScore > 0.15f) {
|
if (overallScore > 0.2f) {
|
||||||
filteredCams.push_back(idxView);
|
filteredCams.push_back(idxView);
|
||||||
}
|
}
|
||||||
//*/
|
//*/
|
||||||
@@ -4363,7 +4397,7 @@ bool MeshTexture::CreateVirtualFaces62(FaceDataViewArr& facesDatas, FaceDataView
|
|||||||
}
|
}
|
||||||
qualityScore = std::max(0.0f, std::min(1.0f, qualityScore));
|
qualityScore = std::max(0.0f, std::min(1.0f, qualityScore));
|
||||||
float overallScore = 0.5f * angleScore + 0.3f * brightnessScore + 0.2f * qualityScore;
|
float overallScore = 0.5f * angleScore + 0.3f * brightnessScore + 0.2f * qualityScore;
|
||||||
if (overallScore > 0.15f) {
|
if (overallScore > 0.2f) {
|
||||||
filteredCams.push_back(idxView);
|
filteredCams.push_back(idxView);
|
||||||
}
|
}
|
||||||
//*/
|
//*/
|
||||||
@@ -4633,7 +4667,7 @@ bool MeshTexture::CreateVirtualFaces62(FaceDataViewArr& facesDatas, FaceDataView
|
|||||||
|
|
||||||
// if (colorDistance <= maxColorDeviation &&
|
// if (colorDistance <= maxColorDeviation &&
|
||||||
// luminanceDistance <= maxLuminanceDeviation)
|
// luminanceDistance <= maxLuminanceDeviation)
|
||||||
if (luminanceDistance <= maxLuminanceDeviation)
|
// if (luminanceDistance <= maxLuminanceDeviation)
|
||||||
{
|
{
|
||||||
validIndices.push_back(n);
|
validIndices.push_back(n);
|
||||||
}
|
}
|
||||||
@@ -6970,9 +7004,9 @@ bool MeshTexture::FaceViewSelection3( unsigned minCommonCameras, float fOutlierT
|
|||||||
// CreateVirtualFaces(facesDatas, virtualFacesDatas, virtualFaces, minCommonCameras);
|
// CreateVirtualFaces(facesDatas, virtualFacesDatas, virtualFaces, minCommonCameras);
|
||||||
// CreateVirtualFaces3(facesDatas, virtualFacesDatas, virtualFaces, minCommonCameras);
|
// CreateVirtualFaces3(facesDatas, virtualFacesDatas, virtualFaces, minCommonCameras);
|
||||||
// CreateVirtualFaces4(facesDatas, virtualFacesDatas, virtualFaces, mapFaceToVirtualFace, minCommonCameras);
|
// CreateVirtualFaces4(facesDatas, virtualFacesDatas, virtualFaces, mapFaceToVirtualFace, minCommonCameras);
|
||||||
// CreateVirtualFaces6(facesDatas, virtualFacesDatas, virtualFaces, isVirtualFace, minCommonCameras);
|
CreateVirtualFaces6(facesDatas, virtualFacesDatas, virtualFaces, isVirtualFace, minCommonCameras);
|
||||||
// CreateVirtualFaces61(facesDatas, virtualFacesDatas, virtualFaces, isVirtualFace, minCommonCameras);
|
// CreateVirtualFaces61(facesDatas, virtualFacesDatas, virtualFaces, isVirtualFace, minCommonCameras);
|
||||||
CreateVirtualFaces62(facesDatas, virtualFacesDatas, virtualFaces, isVirtualFace, minCommonCameras);
|
// CreateVirtualFaces62(facesDatas, virtualFacesDatas, virtualFaces, isVirtualFace, minCommonCameras);
|
||||||
TD_TIMER_STARTD();
|
TD_TIMER_STARTD();
|
||||||
// CreateVirtualFaces7(facesDatas, virtualFacesDatas, virtualFaces, isVirtualFace, minCommonCameras);
|
// CreateVirtualFaces7(facesDatas, virtualFacesDatas, virtualFaces, isVirtualFace, minCommonCameras);
|
||||||
DEBUG_EXTRA("CreateVirtualFaces7 completed: %s", TD_TIMER_GET_FMT().c_str());
|
DEBUG_EXTRA("CreateVirtualFaces7 completed: %s", TD_TIMER_GET_FMT().c_str());
|
||||||
|
|||||||
Reference in new issue
Block a user