Skip to content
Snippets Groups Projects
Commit 1c6e397f authored by Louis James's avatar Louis James
Browse files

moved algo to function

parent 84000ab9
Branches
No related merge requests found
......@@ -66,31 +66,7 @@ void Projector::draw(){
// }
// Find blob pairs
vector<vector<int>> pairs;
for (int i = 0; i < blobs.size();i++){
for (int j = 0; j < blobs.size(); j++){
if(i!=j){
float dist = ofDist(blobs[i].x, blobs[i].y, blobs[j].x, blobs[j].y);
if(dist<400){
// ofDrawLine(blobs[i].x, blobs[i].y, blobs[j].x, blobs[j].y);
// Loop over pairs
bool _found = false;
for (int k = 0; k < pairs.size(); k++) {
vector<int>::iterator iti, itj;
iti = find(pairs[k].begin(), pairs[k].end(), i);
itj = find(pairs[k].begin(), pairs[k].end(), j);
// Check pair has already been found
if (iti != pairs[k].end() && itj != pairs[k].end()) {
// Push pair to pairs
// pairs.push_back({i, j});
_found=true;
}
}
if(!_found) pairs.push_back({i, j});
}
}
}
}
vector<vector<int>> pairs = findPairs(blobs);
// Draw line between them
for(int i = 0; i < pairs.size(); i++){
ofDrawLine(blobs[pairs[i][0]].x, blobs[pairs[i][0]].y,
......@@ -148,6 +124,36 @@ void Projector::keyPressed(int key){
}
}
vector<vector<int>> Projector::findPairs(vector<cv::Point3f> &blobs) {
vector<vector<int>> pairs;
for (int i = 0; i < blobs.size(); i++) {
for (int j = 0; j < blobs.size(); j++) {
if (i != j) {
float dist = ofDist(blobs[i].x, blobs[i].y, blobs[j].x, blobs[j].y);
if (dist < 400) {
// ofDrawLine(blobs[i].x, blobs[i].y, blobs[j].x, blobs[j].y);
// Loop over pairs
bool _found = false;
for (int k = 0; k < pairs.size(); k++) {
vector<int>::iterator iti, itj;
iti = find(pairs[k].begin(), pairs[k].end(), i);
itj = find(pairs[k].begin(), pairs[k].end(), j);
// Check pair has already been found
if (iti != pairs[k].end() && itj != pairs[k].end()) {
// Push pair to pairs
// pairs.push_back({i, j});
_found = true;
}
}
if (!_found)
pairs.push_back({i, j});
}
}
}
}
return pairs;
}
void Projector::mem(int x, int y){}
void Projector::keyReleased(int key){}
void Projector::mouseDragged(int x, int y, int button){}
......
......@@ -16,6 +16,7 @@ class Projector: public ofBaseApp {
void mouseDragged(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void mem(int x, int y);
vector<vector<int>> findPairs(vector<cv::Point3f> &blobs);
bool bFullscreen;
float xp1, yp1;
int gwidth, gheight;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment