fixed, successful build

This commit is contained in:
Ivan
2022-01-21 15:25:51 +02:00
parent 91a872376a
commit a0ef3ea19e
420 changed files with 44 additions and 77718 deletions

View File

@@ -982,7 +982,8 @@ void LoopClosing::CorrectLoop()
unique_lock<mutex> lock(mMutexGBA);
mbStopGBA = true;
mnFullBAIdx++;
//mnFullBAIdx++;
mnFullBAIdx = true;
if(mpThreadGBA)
{
@@ -1233,7 +1234,8 @@ void LoopClosing::MergeLocal()
unique_lock<mutex> lock(mMutexGBA);
mbStopGBA = true;
mnFullBAIdx++;
//mnFullBAIdx++;
mnFullBAIdx = true;
if(mpThreadGBA)
{
@@ -1806,7 +1808,9 @@ void LoopClosing::MergeLocal2()
unique_lock<mutex> lock(mMutexGBA);
mbStopGBA = true;
mnFullBAIdx++;
//mnFullBAIdx++;
mnFullBAIdx = true;
if(mpThreadGBA)
{

View File

@@ -366,30 +366,49 @@ void MapPoint::ComputeDistinctiveDescriptors()
return;
// Compute distances between them
const size_t N = vDescriptors.size();
const auto N = vDescriptors.size();
float Distances[N][N];
for(size_t i=0;i<N;i++)
//float Distances[N][N];
//cv::Mat Distances = cv::Mat(N, N, CV_32F);
vector<vector<float>> Distances;
typedef vector<float> Row;
// Fill Distances
for (size_t i = 0; i < N; ++i)
{
Distances[i][i]=0;
for(size_t j=i+1;j<N;j++)
Row row(N);
for (size_t j = 0; j < N; ++j)
{
int distij = ORBmatcher::DescriptorDistance(vDescriptors[i],vDescriptors[j]);
Distances[i][j]=distij;
Distances[j][i]=distij;
row[j] = 0;
}
Distances.push_back(row); // push each row after you fill it
}
for (size_t i = 0; i < N; i++)
{
Distances[i][i] = 0;
for (size_t j = i + 1; j < N; j++)
{
int distij = ORBmatcher::DescriptorDistance(vDescriptors[i], vDescriptors[j]);
Distances[i][j] = distij;
Distances[j][i] = distij;
}
}
// Take the descriptor with least median distance to the rest
int BestMedian = INT_MAX;
int BestIdx = 0;
for(size_t i=0;i<N;i++)
for (size_t i = 0; i < N; i++)
{
vector<int> vDists(Distances[i],Distances[i]+N);
sort(vDists.begin(),vDists.end());
int median = vDists[0.5*(N-1)];
// vector<int> vDists(Distances[i], Distances[i] + N);
// Since the line above just copies the array, let's do it in a normal way
vector<int> vDists(Distances[i].begin(), Distances[i].end());
sort(vDists.begin(), vDists.end());
int median = vDists[0.5 * (N - 1)];
if(median<BestMedian)
if (median < BestMedian)
{
BestMedian = median;
BestIdx = i;