diff --git a/.gitignore b/.gitignore index 45f108620b1d399a57b839a45f5ef142ba46635b..f965ae5c65947112347ccd49df03f6cacaa486e7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ build-*/ build_*/ dist/ dataset_*/ +input/ binaries*/ examples/build-*/ examples/build_*/ diff --git a/dataset/demo.avi b/dataset/demo.avi deleted file mode 100644 index df20707af3b0a2cbcaaae127b982e1886b1d2aa7..0000000000000000000000000000000000000000 Binary files a/dataset/demo.avi and /dev/null differ diff --git a/dataset/frames/1.png b/dataset/frames/1.png deleted file mode 100644 index 1a4ed8f93d7c7608e44c0c1eee8671f175d97510..0000000000000000000000000000000000000000 Binary files a/dataset/frames/1.png and /dev/null differ diff --git a/dataset/frames/10.png b/dataset/frames/10.png deleted file mode 100644 index 9c07ad5665a35b67962c211add74a9833f76c4df..0000000000000000000000000000000000000000 Binary files a/dataset/frames/10.png and /dev/null differ diff --git a/dataset/frames/11.png b/dataset/frames/11.png deleted file mode 100644 index 85f67c257c774ee72abd7ed6007d040978ae1638..0000000000000000000000000000000000000000 Binary files a/dataset/frames/11.png and /dev/null differ diff --git a/dataset/frames/12.png b/dataset/frames/12.png deleted file mode 100644 index 0783b9a16ccfea475739c76c6b9728c0e019451a..0000000000000000000000000000000000000000 Binary files a/dataset/frames/12.png and /dev/null differ diff --git a/dataset/frames/13.png b/dataset/frames/13.png deleted file mode 100644 index 03708da8d30130acfb7ebfd36e347dceff32d286..0000000000000000000000000000000000000000 Binary files a/dataset/frames/13.png and /dev/null differ diff --git a/dataset/frames/14.png b/dataset/frames/14.png deleted file mode 100644 index 0d9f183b72d905abce0f1d7d0e4ba703a3aab183..0000000000000000000000000000000000000000 Binary files a/dataset/frames/14.png and /dev/null differ diff --git a/dataset/frames/15.png b/dataset/frames/15.png deleted file mode 100644 index 921e373c1da9b7429b73a3f6a55b4f7985f6570b..0000000000000000000000000000000000000000 Binary files a/dataset/frames/15.png and /dev/null differ diff --git a/dataset/frames/16.png b/dataset/frames/16.png deleted file mode 100644 index 35724c6a80b1f58934b2bb77f01e6c038645c8d6..0000000000000000000000000000000000000000 Binary files a/dataset/frames/16.png and /dev/null differ diff --git a/dataset/frames/17.png b/dataset/frames/17.png deleted file mode 100644 index c7c00dba83f4944f330257a324966556d9a2af9b..0000000000000000000000000000000000000000 Binary files a/dataset/frames/17.png and /dev/null differ diff --git a/dataset/frames/18.png b/dataset/frames/18.png deleted file mode 100644 index f720f094d52c37e4a66681cee9d569ca755e402c..0000000000000000000000000000000000000000 Binary files a/dataset/frames/18.png and /dev/null differ diff --git a/dataset/frames/19.png b/dataset/frames/19.png deleted file mode 100644 index f79ba5ef716f40dbe2c71287efab0afc591f424d..0000000000000000000000000000000000000000 Binary files a/dataset/frames/19.png and /dev/null differ diff --git a/dataset/frames/2.png b/dataset/frames/2.png deleted file mode 100644 index 80b69ff2b3ddd06cd6abd3176954ceeef6c9085f..0000000000000000000000000000000000000000 Binary files a/dataset/frames/2.png and /dev/null differ diff --git a/dataset/frames/20.png b/dataset/frames/20.png deleted file mode 100644 index 8fa857f9e9391c98f1b7cd800ccf425ffce774c6..0000000000000000000000000000000000000000 Binary files a/dataset/frames/20.png and /dev/null differ diff --git a/dataset/frames/21.png b/dataset/frames/21.png deleted file mode 100644 index 4066689da9e99c9557877c4e019c95d2f49c2ef7..0000000000000000000000000000000000000000 Binary files a/dataset/frames/21.png and /dev/null differ diff --git a/dataset/frames/22.png b/dataset/frames/22.png deleted file mode 100644 index 4eab05935ad942a5b47e27d581bf8b03a0588987..0000000000000000000000000000000000000000 Binary files a/dataset/frames/22.png and /dev/null differ diff --git a/dataset/frames/23.png b/dataset/frames/23.png deleted file mode 100644 index 95c7ae4a2a4e47663f8a6264a63fb7631e66828c..0000000000000000000000000000000000000000 Binary files a/dataset/frames/23.png and /dev/null differ diff --git a/dataset/frames/24.png b/dataset/frames/24.png deleted file mode 100644 index e7911f18e2c857f0a0fdd8f9601df0e006abf4b0..0000000000000000000000000000000000000000 Binary files a/dataset/frames/24.png and /dev/null differ diff --git a/dataset/frames/25.png b/dataset/frames/25.png deleted file mode 100644 index e622e96e6c24a9d09d40df8cea1a0d31661a0d72..0000000000000000000000000000000000000000 Binary files a/dataset/frames/25.png and /dev/null differ diff --git a/dataset/frames/26.png b/dataset/frames/26.png deleted file mode 100644 index 75d2365412c18313ea6af382c5df3bd93383edfe..0000000000000000000000000000000000000000 Binary files a/dataset/frames/26.png and /dev/null differ diff --git a/dataset/frames/27.png b/dataset/frames/27.png deleted file mode 100644 index 5293e7ec038fb349e4830dbc10f977cfc9af2387..0000000000000000000000000000000000000000 Binary files a/dataset/frames/27.png and /dev/null differ diff --git a/dataset/frames/28.png b/dataset/frames/28.png deleted file mode 100644 index 6bc933b3124ff2d0c7680880a787ce8968df378a..0000000000000000000000000000000000000000 Binary files a/dataset/frames/28.png and /dev/null differ diff --git a/dataset/frames/29.png b/dataset/frames/29.png deleted file mode 100644 index 7eaaee299cfd2befad83343a39ad7a9fb588548b..0000000000000000000000000000000000000000 Binary files a/dataset/frames/29.png and /dev/null differ diff --git a/dataset/frames/3.png b/dataset/frames/3.png deleted file mode 100644 index eb322896c9e700297724c022585bf2ed4bc0e8ee..0000000000000000000000000000000000000000 Binary files a/dataset/frames/3.png and /dev/null differ diff --git a/dataset/frames/30.png b/dataset/frames/30.png deleted file mode 100644 index c3e1cd0304f2ae22ffea69c680deb4128e8ed3b1..0000000000000000000000000000000000000000 Binary files a/dataset/frames/30.png and /dev/null differ diff --git a/dataset/frames/31.png b/dataset/frames/31.png deleted file mode 100644 index 6ec4856fbd4c0ed376d26a12a94b02d9c0bf3aad..0000000000000000000000000000000000000000 Binary files a/dataset/frames/31.png and /dev/null differ diff --git a/dataset/frames/32.png b/dataset/frames/32.png deleted file mode 100644 index 8feacd220e70c59f0a07fb452f8f0402ffaf2bd9..0000000000000000000000000000000000000000 Binary files a/dataset/frames/32.png and /dev/null differ diff --git a/dataset/frames/33.png b/dataset/frames/33.png deleted file mode 100644 index 7d88de32cd05ce981e9799bb9426b5e09b267d37..0000000000000000000000000000000000000000 Binary files a/dataset/frames/33.png and /dev/null differ diff --git a/dataset/frames/34.png b/dataset/frames/34.png deleted file mode 100644 index 9738ac35797fd92f6f03b1995282726535486109..0000000000000000000000000000000000000000 Binary files a/dataset/frames/34.png and /dev/null differ diff --git a/dataset/frames/35.png b/dataset/frames/35.png deleted file mode 100644 index f85022addeb84309f1617303af164004ea89996a..0000000000000000000000000000000000000000 Binary files a/dataset/frames/35.png and /dev/null differ diff --git a/dataset/frames/36.png b/dataset/frames/36.png deleted file mode 100644 index edbdb627f1a066d773d2234006ca2f5b238291d7..0000000000000000000000000000000000000000 Binary files a/dataset/frames/36.png and /dev/null differ diff --git a/dataset/frames/37.png b/dataset/frames/37.png deleted file mode 100644 index b27dacb396cfa0d522a925a91c35b4c6f5367ec0..0000000000000000000000000000000000000000 Binary files a/dataset/frames/37.png and /dev/null differ diff --git a/dataset/frames/38.png b/dataset/frames/38.png deleted file mode 100644 index f20555cc48e82c650fa91e3d3b8b3cd9e6d0c2b3..0000000000000000000000000000000000000000 Binary files a/dataset/frames/38.png and /dev/null differ diff --git a/dataset/frames/39.png b/dataset/frames/39.png deleted file mode 100644 index 29ea25b2d90fdb2bf9cc06b45fd343284e95e7a5..0000000000000000000000000000000000000000 Binary files a/dataset/frames/39.png and /dev/null differ diff --git a/dataset/frames/4.png b/dataset/frames/4.png deleted file mode 100644 index a2aa98d09932851785df270c0ff2738bc3d337e9..0000000000000000000000000000000000000000 Binary files a/dataset/frames/4.png and /dev/null differ diff --git a/dataset/frames/40.png b/dataset/frames/40.png deleted file mode 100644 index 03b5279994d159a8cb9c203003dc0419673eba7f..0000000000000000000000000000000000000000 Binary files a/dataset/frames/40.png and /dev/null differ diff --git a/dataset/frames/41.png b/dataset/frames/41.png deleted file mode 100644 index 976fa7b6446395551217f296d88d4d058b12ea3e..0000000000000000000000000000000000000000 Binary files a/dataset/frames/41.png and /dev/null differ diff --git a/dataset/frames/42.png b/dataset/frames/42.png deleted file mode 100644 index 7d0ed3b876d3767cfb1558df0019f8bc21646245..0000000000000000000000000000000000000000 Binary files a/dataset/frames/42.png and /dev/null differ diff --git a/dataset/frames/43.png b/dataset/frames/43.png deleted file mode 100644 index 2965fe3099e1986ccf64eb333acbebc95cec8625..0000000000000000000000000000000000000000 Binary files a/dataset/frames/43.png and /dev/null differ diff --git a/dataset/frames/44.png b/dataset/frames/44.png deleted file mode 100644 index 5166585036e1999f727292d3c8bef500e4054165..0000000000000000000000000000000000000000 Binary files a/dataset/frames/44.png and /dev/null differ diff --git a/dataset/frames/45.png b/dataset/frames/45.png deleted file mode 100644 index dbff43f8bb2432ffa2fe039fe1f0d48d6c717995..0000000000000000000000000000000000000000 Binary files a/dataset/frames/45.png and /dev/null differ diff --git a/dataset/frames/46.png b/dataset/frames/46.png deleted file mode 100644 index 8fe5f5d0ac8d82a377e37b5199ebaa0708a76fe3..0000000000000000000000000000000000000000 Binary files a/dataset/frames/46.png and /dev/null differ diff --git a/dataset/frames/47.png b/dataset/frames/47.png deleted file mode 100644 index a8abcbfcce3ff2bae81c12f8f1c9b6da3c4d026d..0000000000000000000000000000000000000000 Binary files a/dataset/frames/47.png and /dev/null differ diff --git a/dataset/frames/48.png b/dataset/frames/48.png deleted file mode 100644 index 8d3b50ea07eae1fdb99be15dc1975bfe37c3978e..0000000000000000000000000000000000000000 Binary files a/dataset/frames/48.png and /dev/null differ diff --git a/dataset/frames/49.png b/dataset/frames/49.png deleted file mode 100644 index b1a9facec97cff1a7cdc4d361b864a13294a0128..0000000000000000000000000000000000000000 Binary files a/dataset/frames/49.png and /dev/null differ diff --git a/dataset/frames/5.png b/dataset/frames/5.png deleted file mode 100644 index 51f1c69d5ab594c5c3a380a8cd36427e362fe038..0000000000000000000000000000000000000000 Binary files a/dataset/frames/5.png and /dev/null differ diff --git a/dataset/frames/50.png b/dataset/frames/50.png deleted file mode 100644 index 0d6d188637f2a77e3d1e4e431ff889fe4002c83a..0000000000000000000000000000000000000000 Binary files a/dataset/frames/50.png and /dev/null differ diff --git a/dataset/frames/51.png b/dataset/frames/51.png deleted file mode 100644 index a7a9e0fd7e4bf75fecf62591ea308666e2479266..0000000000000000000000000000000000000000 Binary files a/dataset/frames/51.png and /dev/null differ diff --git a/dataset/frames/6.png b/dataset/frames/6.png deleted file mode 100644 index 26ecff4356bd8680579a66aa9bfe71e92f1258cb..0000000000000000000000000000000000000000 Binary files a/dataset/frames/6.png and /dev/null differ diff --git a/dataset/frames/7.png b/dataset/frames/7.png deleted file mode 100644 index 203d1868d90bcde99b9cae23a9742602e5b18a53..0000000000000000000000000000000000000000 Binary files a/dataset/frames/7.png and /dev/null differ diff --git a/dataset/frames/8.png b/dataset/frames/8.png deleted file mode 100644 index 400a298793fc758fca9a945c55c23f9a6aec287e..0000000000000000000000000000000000000000 Binary files a/dataset/frames/8.png and /dev/null differ diff --git a/dataset/frames/9.png b/dataset/frames/9.png deleted file mode 100644 index 24efc11379200ddaf471030681f8bee424a6bb37..0000000000000000000000000000000000000000 Binary files a/dataset/frames/9.png and /dev/null differ diff --git a/dataset/video.avi b/dataset/video.avi deleted file mode 100644 index 828ec7ba863b23f7b0775d322c6b3d297035c4d5..0000000000000000000000000000000000000000 Binary files a/dataset/video.avi and /dev/null differ diff --git a/dataset/video.avi.tgz b/dataset/video.avi.tgz deleted file mode 100644 index db47b3dbe45fa70a18f56c2e2899e50fd307343c..0000000000000000000000000000000000000000 Binary files a/dataset/video.avi.tgz and /dev/null differ diff --git a/dataset/video.tar b/dataset/video.tar deleted file mode 100644 index 06315001198e1fef642531f224ddc930123bb668..0000000000000000000000000000000000000000 Binary files a/dataset/video.tar and /dev/null differ diff --git a/dataset/video02.avi b/dataset/video02.avi deleted file mode 100644 index 4c9299cfd75fafb25b7b75e72c1e97357269199a..0000000000000000000000000000000000000000 Binary files a/dataset/video02.avi and /dev/null differ diff --git a/dataset/video03.avi b/dataset/video03.avi deleted file mode 100644 index c2873f201f5227dbd58f654421fefaf94d0bfcb5..0000000000000000000000000000000000000000 Binary files a/dataset/video03.avi and /dev/null differ diff --git a/examples/Demo.cpp b/examples/Demo.cpp index d3e2c1c8d070333bf92c80744fa02d1bc3cc5fcc..5cf4a152d0b568a1a20207a0e290d443ddb354ca 100644 --- a/examples/Demo.cpp +++ b/examples/Demo.cpp @@ -1,6 +1,9 @@ /* bgs_demo -i ../../dataset/video.tar -a 100 -o ../../output -c ../../config/centerConfigFile.xml -p ../../config/camParam.xml +TODO +> input = tar of mp4s? +> amount = ??? number of mp4s?? #### Background Subtraction Methods ##### @@ -40,7 +43,8 @@ my own adapter to use the model (tapter?) #include <string.h> #include <unistd.h> -#include <regex> //cpp 11X +#include <regex> //cpp11 +#include <filesystem> //cpp17 #define PROCESS_CENTER_VERSION_MAJOR 2 #define PROCESS_CENTER_VERSION_MINOR 0 @@ -53,9 +57,6 @@ using namespace bgslibrary::algorithms; using namespace cv; using namespace std; -String camParamFile, centerFile, outputDir, inputFile; -int amountFiles; - const string ABOUT_STRING=R"("Camtron Software B v2.0.0 the software extracts the position of individuals in a single frame @@ -71,7 +72,7 @@ Canny 1986. A Computational Approach to Edge Detection (framework opencv version 3.2.) e) made a selection of all extracted polygons to reduce wrong positives remove all polygons with area of bounding rectangles lower threshold min ( 150 pixel x pixel) - and bigger than threshold max ( 300 000 pixel x pixel ) +and bigger than threshold max ( 300 000 pixel x pixel ) f) calculate convex hull of all remaining points of all polygones g) calculate Hu invariants of convex hull Hu 1962 “Visual Pattern Recognition by Moment Invariants “ @@ -80,44 +81,86 @@ g) calculate the Centroid of convex hull with hu invariants e) save the remaining centroids for a frame to file )"; +// +// FWD DCLs +// + +void my_handler(int signum); +vector<char> copyDataInBuffer(struct archive *aw); +int toFrameNumber(string filename); //! convert our actual jpg file number to framenumber +void init(); +void read_camParamFile(); +void read_centerFile(); +void libArchive_init(); +void print_ruler(); + // // GLOBALS // -Scalar color_red( 0,0,255,255 ); -const int FILE_ERROR = -3; +String camParamFile, centerFile, outputDir, inputFile; +int amountFiles; + +Mat distCoeffs; +Mat cameraMatrix; + +int circleCenterX=880; +int circleCenterY=750; +int circleRadius=700; + +struct archive *archive; +struct archive *ext; +struct archive_entry *entry; + int g_badSignalFlagAbort = 0; +Scalar color_red( 0,0,255,255 ); -void my_handler(int signum); +namespace error { + enum { + libarchive_file, + unexpected_frame_number, + file_not_found, + opening_config_file, + }; +} -vector<char> copyDataInBuffer(struct archive *aw); -//! convert our actual jpg file number to framenumber -int toFrameNumber(string filename); +// ########### -void checkFiles(std::vector<String> files_or_dirs) +void print_ruler() +{ + std::cout << "######################################" << endl; +} + +void checkFiles(map<string, string> files_or_dirs) { bool ret = false; - for (auto f : files_or_dirs) { - if (!std::filesystem::exists(f)) + for(const auto& [k,v] : files_or_dirs) { + if (!std::filesystem::exists(v)) { - std::cerr << f << " doesn't exist!" << std::endl; + cerr << k << ": " << v << " [not found!] " << endl; ret = true; } + else + { + cout << k << ": " << v << endl; + } } + + print_ruler(); if (ret) - exit(1); + exit(error::file_not_found); } void parse(int argc, char** argv) { const String keys = - "{help h usage ? || " + String(argv[0]) + " -i=in.tar -a=10 -c=center.xml -o=outPath -p=camparameterFile.xml }" - "{i|| input tarfile/dir containing tars? }" - "{o|.| output path / dir }" - "{a|-1| amount of files/frames }" - "{p|camparam.yml| camera parameter file }" - "{c|<none>| exact center xml-conf file }" + "{help h usage ? || " + String(argv[0]) + " -i=in.tar -a=10 -c=center.xml -o=outPath -p=camparam.xml }" + "{i|../input/| input tarfile/dir containing tars? }" + "{o|../output| output path / dir }" + "{a|| amount of files/frames }" + "{p|../config/camparam.yml| camera parameter file }" + "{c|../config/center.xml| exact center xml-conf file }" ; CommandLineParser parser(argc, argv, keys); @@ -141,78 +184,64 @@ void parse(int argc, char** argv) exit(1); } - checkFiles({camParamFile, centerFile, outputDir, inputFile}); - - // cout << "args: -i " << inputFile << " -a " << amountFiles << " -c" << centerFileString << " -o " << outputDir << " -p " << camParamFile << endl; - std::cout << "inputFile: " << inputFile << std::endl; - std::cout << "outputDir: " << outputDir << std::endl; std::cout << "amountFiles: " << amountFiles << std::endl; - std::cout << "camParamFile: " << camParamFile << std::endl; - std::cout << "centerFile: " << centerFile << std::endl; - std::cout << "######################################" << endl; - + checkFiles({{"camParamFile",camParamFile}, {"centerFile",centerFile}, {"outputDir",outputDir}, {"inputFile",inputFile}}); } void init() { signal(SIGUSR1, my_handler); srand (time(NULL)); //init the random number generator + + read_camParamFile(); + read_centerFile(); + libArchive_init(); } -void read_camParamFile(Mat& distCoeffs, Mat& cameraMatrix) +void read_camParamFile() { - std::string camParamFile = cameraParameterFile; - FileStorage fs(camParamFile, FileStorage::READ); - if (!fs.isOpened()) - { - std::cerr << "error opening '" << camParamFile << "' will abort" << endl; - return FILE_ERROR; - } + FileStorage fs(camParamFile, FileStorage::READ); + if (!fs.isOpened()) + { + std::cerr << "error opening '" << camParamFile << "' will abort" << endl; + exit(error::opening_config_file); + } - fs["camera_matrix"] >> cameraMatrix; - fs["distortion_coefficients"] >> distCoeffs; + fs["camera_matrix"] >> cameraMatrix; + fs["distortion_coefficients"] >> distCoeffs; - cout << cameraMatrix << endl << distCoeffs << endl; + cout << "cameraMatrix" << cameraMatrix << endl; + cout << "distCoeffs" << distCoeffs << endl; + print_ruler(); } //fs.release(); -void read_centerFile(int circleCenterX=880, int circleCenterY=750, int circleRadius=700) +void read_centerFile() { //! read the center config file to cut out the ROI // TODO merge this config with the Tapter.xml ?? - FileStorage fsCen; - fsCen.open(centerFile, FileStorage::READ); - if (!fsCen.isOpened()) + FileStorage fs(centerFile, FileStorage::READ); + if (!fs.isOpened()) { - cout << "error during open " << centerFileString << " will abort" << endl; - return EXIT_FAILURE; + cout << "error opening :" << centerFile << endl; + exit(error::opening_config_file); } - circleCenterX = (int) fsCen["circleCenterX"]; - circleCenterY = (int) fsCen["circleCenterY"]; - circleRadius = (int) fsCen["circleRadius"];\ + circleCenterX = (int) fs["circleCenterX"]; + circleCenterY = (int) fs["circleCenterY"]; + circleRadius = (int) fs["circleRadius"]; cout << "circleRadius: " << circleRadius << endl; cout << "circleCenterX: " << circleCenterX << endl; cout << "circleCenterY: " << circleCenterY << endl; + print_ruler(); -} //fsCen.release(); +} //fs.release(); -int main(int argc, char * argv[]) +void libArchive_init() { - parse(argc, argv); - init(); - - cout << "Using OpenCV " << CV_MAJOR_VERSION << "." << CV_MINOR_VERSION << "." << CV_SUBMINOR_VERSION << endl; - cout << "Using processcenter " << PROCESS_CENTER_VERSION_MAJOR << "." << PROCESS_CENTER_VERSION_MINOR << "." << PROCESS_CENTER_VERSION_MINOR_FIXES << endl << endl; - - //libarchive things - - struct archive *archive; - struct archive *ext; - struct archive_entry *entry; - int r; int flags = ARCHIVE_EXTRACT_TIME; // see https://linux.die.net/man/3/archive_write_disk for more flags - const char *filename = testFile; + const char *filename = inputFile.c_str(); //XXX needed? + // const char *filename = "testFile"; //XXX needed? archive = archive_read_new(); ext = archive_write_disk_new(); @@ -225,24 +254,29 @@ int main(int argc, char * argv[]) filename = NULL; // and open the handler - if ((r = archive_read_open_filename(archive, filename, 10240))) + if (archive_read_open_filename(archive, filename, 10240)) { cerr << "archive_read_open_filename: error: " << archive_error_string(archive) << " will abort" << endl; - exit(1); + exit(error::libarchive_file); } +} + +int main(int argc, char * argv[]) +{ + parse(argc, argv); + init(); - IBGS *bgs = new FrameDifference; - // IBGS *bgs = new PixelBasedAdaptiveSegmenter; // TODO + cout << "Using OpenCV " << CV_MAJOR_VERSION << "." << CV_MINOR_VERSION << "." << CV_SUBMINOR_VERSION << endl; + cout << "Using processcenter " << PROCESS_CENTER_VERSION_MAJOR << "." << PROCESS_CENTER_VERSION_MINOR << "." << PROCESS_CENTER_VERSION_MINOR_FIXES << endl << endl; - Mat distCoeffs, cameraMatrix; - read_camParamFile(distCoeffs, cameraMatrix); - int circleCenterX, circleCenterY, circleRadius; - read_centerFile(circleCenterX, circleCenterY, circleRadius); + // IBGS *bgs = new FrameDifference; + IBGS *bgs = new PixelBasedAdaptiveSegmenter; // TODO - system( "echo 'sleep a bit... ' && sleep 12" ); - exit(EXIT_SUCCESS); + + int ret=system( "echo 'sleep a bit... ' && sleep 12" ); + exit(ret); cout << "a) process all frames " << endl; @@ -251,6 +285,7 @@ int main(int argc, char * argv[]) int frameCounter=0; int myFileTarWriterHeaderCounter = 0; int frameCounterOld = -1; + int r = -1; vector<string> myFileErrorList;//list for pure io error vector<string> myFileListNoContour; //list for no contours found; vector<string> myFileListAfterContourSelection; //list for no contours found after selection; @@ -271,7 +306,7 @@ int main(int argc, char * argv[]) r = archive_read_next_header(archive, &entry); if (r == ARCHIVE_EOF) break; - if (r != ARCHIVE_OK) + else if (r != ARCHIVE_OK) { cerr << "archive_read_next_header: error: " << archive_error_string(archive) << " will abort" << endl; exit(1); @@ -288,7 +323,7 @@ int main(int argc, char * argv[]) if(frameCounterOld>frameCounter) { cerr << " error during read in the file number, found non-monotonic order, will abort"; - exit(1); + exit(error::unexpected_frame_number); } frameCounterOld = frameCounter; @@ -662,7 +697,7 @@ int toFrameNumber(string filename) { int retVal = -1; - //we cut out all non needed substrings + //cut out all non-needed substrings filename = regex_replace(filename, regex("/"), ""); filename = regex_replace(filename, regex("data_sized"), ""); filename = regex_replace(filename, regex("jpg"), ""); diff --git a/examples/run_demo.sh b/examples/run_demo.sh index 7f3481135b5d575f91b87b66b6e3a33605c79f71..e5bf616808f805ac6168218f9222e9027a509c20 100755 --- a/examples/run_demo.sh +++ b/examples/run_demo.sh @@ -1,16 +1,13 @@ #!/bin/bash -# ./build/bgs_demo ../dataset/video.avi - ./build/bgs_demo -i ../dataset/video.tar -a 40 -p ../config/camParam.xml -o ../output -c ../config/centerConfigFile.xml - # -i data_sized.tar +# ./build/bgs_demo -a=40 -p=../config/2019-10-15-d4-calibration-parameter-n500.xml -o=../output -c=../config/camera_center_d3.xml +./build/bgs_demo -i=../input/rec11983200track.mp4 -a=40 -p=../config/2019-10-15-d4-calibration-parameter-n500.xml -o=../output -c=../config/camera_center_d3.xml + +# -i data_sized.tar (not gzipped) #multiple tar'ed videos? + # looking for sth like: rec1235678p/ - # -c exactCenter - #HOW? - # circleCenterX - # circleCenterY - # circleRadius +# -a ? -# -p camParam -# camera_matrix -# distortion_coefficients +# -c exactCenter +# -p camera calibration Parameters diff --git a/opencv b/opencv deleted file mode 100644 index cb548bcad92dc45d48f2d42355b044a063c55f0f..0000000000000000000000000000000000000000 --- a/opencv +++ /dev/null @@ -1,127 +0,0 @@ - -point2f(y,x) # inverted! -BGR #not rgb ... -Scalar = 4 element vector -CV_RGB(r, g, b) #from bgs - -Types: - #depth - CV_8U unsigned char - CV_8S char - CV_16U unsigned short - CV_16S short - CV_32S int - CV_32F float - CV_64F double - # + channels C1..4 eg RGBA: - # eg Mat M(2,2, CV_8UC3, Scalar(0,0,255)); - 0 to 255 for CV_8U images - 0 to 65535 for CV_16U images - 0 to 1 for CV_32F images - - - -# Camera Calibration: -######################## - distortion_coefficients - 5 values - camera_matrix - 3x3 matrix - eg focal length etc. - - different methods: - https://docs.opencv.org/4.x/d7/d21/tutorial_interactive_calibration.html - https://docs.opencv.org/4.x/d6/d55/tutorial_table_of_content_calib3d.html - - # using chess board, to get values - https://github.com/abidrahmank/OpenCV2-Python-Tutorials/blob/master/source/py_tutorials/py_calib3d/py_calibration/py_calibration.rs - - - -# Matrices -######################## - Fill matrix with random values - Mat R = Mat(3, 2, CV_8UC3); - randu(R, Scalar::all(0), Scalar::all(255)); - - Formatted output - cout << "R (csv) = " << endl << format(R, Formatter::FMT_CSV ) << endl << endl; - #sa FMT_C/PYTHON/NUMPY/CSV - - InputArray = vector or Mat - - type() - create(r,c,t) - copyTo() - clone() for deep copy - cv::Mat F = cv::Mat::ones(3, 4, CV_32FC1) * 3; //all 3's - - traverse: https://programmersought.com/article/72762264465/ - -##roi - region of interest - x, y, w, h - - // roi as subset of full data image - Mat D (A, Rect(10, 10, 100, 100) ); // using a rectangle - Mat E = A(Range::all(), Range(1,3)); // using row and column boundaries - - locateROI, adjustROI, - - -# CommandLineParser - @ -> positional arg - no default value -> has_XX - else: get<T>("XX") - <none> dflt value to ensure strings arent "" - -# MISC -######################## - glob( dir, file ) - - randu() # https://docs.opencv.org/4.x/d2/de8/group__core__array.html#ga1ba1026dca0807b27057ba6a49d258c0 - cvtColor(img, img, COLOR_BGR2Luv); #convert color - - sounds interesting: - selectROI, selectROIs, reduce, qt, dilate, erode, - convexhull, findcontours, checkChessboard, calibrateCamera - hough ? - hu-invariants, centroid - moments (weigthed avg of pixel intensities) - spatial <> central <> central normalized - - randPattern - - -BS: -https://docs.opencv.org/4.x/da/d5c/tutorial_canny_detector.html -https://docs.opencv.org/4.x/d1/dc5/tutorial_background_subtraction.html -https://web.archive.org/web/20140418093037/http://bmc.univ-bpclermont.fr/ -https://web.archive.org/web/20140221195750/http://docs.opencv.org/trunk/doc/tutorials/video/background_subtraction/background_subtraction.html -https://www.pyimagesearch.com/2020/07/27/opencv-grabcut-foreground-segmentation-and-extraction/ -https://learnopencv.com/applications-of-foreground-background-separation-with-semantic-segmentation/ -https://docs.opencv.org/4.x/d2/d55/group__bgsegm.html -https://docs.opencv.org/4.x/d5/de8/samples_2cpp_2segment_objects_8cpp-example.html#_a15 - -tuts:)) -https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html -https://datahacker.rs/opencv-thresholding/ - -# median frame as bg + frame difference -https://learnopencv.com/simple-background-estimation-in-videos-using-opencv-c-python/ - -https://learnopencv.com/contour-detection-using-opencv-python-c/ -https://learnopencv.com/deep-learning-with-opencvs-dnn-module-a-definitive-guide/ - -moments -https://docs.opencv.org/4.x/d0/d49/tutorial_moments.html - -#BGS -https://docs.opencv.org/4.x/d8/d38/tutorial_bgsegm_bg_subtraction.html - - - -# alliedvision-vimba-sdk -####################### - AsynchronousGrab example > to use with opencv - - /tmp/mozilla_sugu0/Vimba_installation_under_Linux-1.pdf - - C-api - https://www.ansatt.hig.no/ares/Support/Camera%20drivers/AVT/Vimba/1.1/VimbaC/Documentation/Vimba%20C%20Manual.pdf