Skip to content

Commit

Permalink
fix some issues with skipping files and old redundant code
Browse files Browse the repository at this point in the history
  • Loading branch information
StevenPuttemans committed Jan 6, 2017
1 parent 45f0cf0 commit 46fa9a6
Showing 1 changed file with 15 additions and 33 deletions.
48 changes: 15 additions & 33 deletions apps/annotation/opencv_annotation.cpp
Expand Up @@ -59,12 +59,7 @@ Adapted by: Puttemans Steven - April 2016 - Vectorize the process to enable bett

#include <fstream>
#include <iostream>

#if defined(_WIN32)
#include <direct.h>
#else
#include <sys/stat.h>
#endif
#include <map>

using namespace std;
using namespace cv;
Expand Down Expand Up @@ -249,34 +244,20 @@ int main( int argc, const char** argv )
int resizeFactor = parser.get<int>("resizeFactor");
int const maxWindowHeight = parser.get<int>("maxWindowHeight") > 0 ? parser.get<int>("maxWindowHeight") : -1;

// Check if the folder actually exists
// If -1 is returned then the folder actually exists, and thus you can continue
// In all other cases there was a folder creation and thus the folder did not exist
#if defined(_WIN32)
if(_mkdir(image_folder.c_str()) != -1){
// Generate an error message
cerr << "The image folder given does not exist. Please check again!" << endl;
// Remove the created folder again, to ensure a second run with same code fails again
_rmdir(image_folder.c_str());
return 0;
}
#else
if(mkdir(image_folder.c_str(), 0777) != -1){
// Generate an error message
cerr << "The image folder given does not exist. Please check again!" << endl;
// Remove the created folder again, to ensure a second run with same code fails again
remove(image_folder.c_str());
return 0;
}
#endif

// Start by processing the data
// Return the image filenames inside the image folder
vector< vector<Rect> > annotations;
map< String, vector<Rect> > annotations;
vector<String> filenames;
String folder(image_folder);
glob(folder, filenames);

// Add key tips on how to use the software when running it
cout << "* mark rectangles with the left mouse button," << endl;
cout << "* press 'c' to accept a selection," << endl;
cout << "* press 'd' to delete the latest selection," << endl;
cout << "* press 'n' to proceed with next image," << endl;
cout << "* press 'esc' to stop." << endl;

// Loop through each image stored in the images folder
// Create and temporarily store the annotations
// At the end write everything to the annotations file
Expand Down Expand Up @@ -306,7 +287,7 @@ int main( int argc, const char** argv )
current_annotations[j].height = current_annotations[j].height * resizeFactor;
}
}
annotations.push_back(current_annotations);
annotations[filenames[i]] = current_annotations;

// Check if the ESC key was hit, then exit earlier then expected
if(stop){
Expand All @@ -323,10 +304,11 @@ int main( int argc, const char** argv )
}

// Store the annotations, write to the output file
for(int i = 0; i < (int)annotations.size(); i++){
output << filenames[i] << " " << annotations[i].size();
for(int j=0; j < (int)annotations[i].size(); j++){
Rect temp = annotations[i][j];
for(map<String, vector<Rect> >::iterator it = annotations.begin(); it != annotations.end(); it++){
vector<Rect> &anno = it->second;
output << it->first << " " << anno.size();
for(size_t j=0; j < anno.size(); j++){
Rect temp = anno[j];
output << " " << temp.x << " " << temp.y << " " << temp.width << " " << temp.height;
}
output << endl;
Expand Down

0 comments on commit 46fa9a6

Please sign in to comment.