{"id":13716640,"url":"https://github.com/jberry47/ddpsc_phenotypercv","last_synced_at":"2025-05-07T06:30:44.275Z","repository":{"id":76500730,"uuid":"156551063","full_name":"jberry47/ddpsc_phenotypercv","owner":"jberry47","description":"Header-only C++11 library using OpenCV for high-throughput image-based plant phenotyping","archived":false,"fork":false,"pushed_at":"2022-04-28T14:59:07.000Z","size":7340,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-14T04:34:55.520Z","etag":null,"topics":["charuco","color-correction","high-throughput","image-processing","machine-learning","opencv","plant-phenotyping"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jberry47.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-11-07T13:32:37.000Z","updated_at":"2023-01-10T05:51:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"c5cfd38c-91a2-4c9e-8694-80d6d261097d","html_url":"https://github.com/jberry47/ddpsc_phenotypercv","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jberry47%2Fddpsc_phenotypercv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jberry47%2Fddpsc_phenotypercv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jberry47%2Fddpsc_phenotypercv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jberry47%2Fddpsc_phenotypercv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jberry47","download_url":"https://codeload.github.com/jberry47/ddpsc_phenotypercv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252826634,"owners_count":21810152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["charuco","color-correction","high-throughput","image-processing","machine-learning","opencv","plant-phenotyping"],"created_at":"2024-08-03T00:01:12.847Z","updated_at":"2025-05-07T06:30:44.269Z","avatar_url":"https://github.com/jberry47.png","language":"C++","funding_links":[],"categories":["Plant science"],"sub_categories":[],"readme":"\u003cimg src=\"www/raw.png\" width=\"33%\"\u003e\u003c/img\u003e\u003cimg src=\"www/mask.png\" width=\"33%\"\u003e\u003c/img\u003e\u003cimg src=\"www/classified.png\" width=\"33%\"\u003e\u003c/img\u003e\n\n# DDPSC PhenotyperCV\nPhenotyperCV is a header-only C++11 library that has a large range of functionality for image-based plant phenotyping. \n\nIncluded is a single source file that, when built, has workflows for many pratical applications. The created executable has multiple features that are selected for using `-m` flag indicating the \"mode\" you'd like execute. As development continues, new modes will become available to expand the use of this program to problems outside the framework of Bellwether platform. Futher information can be found using the `-h` flag. \n\nCustom workflows, with the aid of functions in this library, are also made possible and are intended to ease the difficulty in processing images from any source. A common bottleneck of image processing is not knowing how to perform specific tasks and this library is designed with that in mind.\n\n### Usage\nVisit [the wiki page](https://github.com/jberry47/ddpsc_phenotypercv/wiki) for more info on how to use included source file and how to create your own custom workflows. \n\n### Building the program on a local computer\nPhenotyperCV is dependent on two packages: OpenCV and Eigen3. Additionally, the OpenCV installation must have been with the extra modules enabled, namely: aruco, ml, and ximgproc. This program must be compiled from source and is made easier with `cmake`\n\n##### (Mac Only) Installing Homebew\n```bash \n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n```\n\n##### Installing CMake\nFor Ubuntu users:\n```bash\nsudo apt-get install cmake\n```\nFor MacOSX users:\n```bash\nbrew install cmake\n```\n\n##### Making a directory for all builds\n```bash\nmkdir big_build \u0026\u0026 cd big_build\nexport my_path=$(pwd)\n```\n\n##### Getting Eigen3 and installing\n```bash\nwget \"https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.bz2\" -O\"eigen-3.3.7.tar\"\ntar -xf eigen-3.3.7.tar \u0026\u0026 cd eigen-3.3.7\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_INSTALL_PREFIX=/usr/local ..\nsudo make install\nsudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include/\ncd $my_path\n```\n\n##### Getting OpenCV extra modules\n```bash\nwget https://github.com/opencv/opencv_contrib/archive/4.5.2.tar.gz -O\"opencv_contrib-4.5.2.tar.gz\"\ntar -xzf opencv_contrib-4.5.2.tar.gz\ncd opencv_contrib-4.5.2/modules\nrm -rv !(\"aruco\"|\"ximgproc\") \ncd $my_path\n```\n\n##### Getting OpenCV and installing\n```bash\nwget https://github.com/opencv/opencv/archive/4.5.2.tar.gz -O\"opencv-4.5.2.tar.gz\"\ntar -xzf opencv-4.5.2.tar.gz\ncd opencv-4.5.2\nmkdir build \u0026\u0026 cd build\ncmake .. -DOPENCV_EXTRA_MODULES_PATH=$my_path/opencv_contrib-4.5.2/modules\nmake -j8\nsudo make install\ncd $my_path\n```\n##### Getting ZBar and installing\nFor Ubuntu users:\n```bash\nsudo apt-get install libzbar-dev libzbar0\n```\nFor MacOSX users:\n```bash\nbrew install zbar\n```\n\n##### Getting PhenotyperCV and building\n```bash\ngit clone https://github.com/jberry47/ddpsc_phenotypercv\ncd ddpsc_phenotypercv \u0026\u0026 mkdir build \u0026\u0026 cd build\ncmake ..\nmake\nexport PATH=$PATH:$my_path/ddpsc_phenotypercv/build\n```\n\n### Building the program on DDPSC Infrastructure\nBoth OpenCV and Eigen3 depedencies are in unconventional locations that are not found with cmake. To build the program on the infrastructure, there is a bash script in the misc directory of this repo that links to everything needed, and can be run with: \n```bash \ncd ddpsc_phenotypercv/misc\n./pull_compile_phenocv.sh\ncd ../../\n```\nAlternatively, a pre-built executable exists already in `/home/jberry/programs/PhenotyperCV`.\n\nAfter a successful build, you need to include the libraries to OpenCV and ZBar in your LD_LIBRARY_PATH\n```bash\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/shares/bioinfo/installs/opencv-3.3.0/install/lib:/bioinfo/lib\n```\nIt is recommended that you add this line to your bash_profile or bash_rc so you don't have to add the libraries every time you want to use PhenotyperCV.\n\n### Testing the build\nAfter you create the executable, test to make sure it can be used by running `PhenotyperCV -h` which should display a help page. \n\n### DDPSC Datasci Cluster Usage\nExample condor job file and accompanying executable for processing images on the DDPSC infrastructure can be found in the `misc` directory\n* **phenotypercv.submit** - condor submit file that MUST BE EDITED to your file paths and image location\n* **run_phenocv.sh** - the executable that the job file calls and MUST BE EDITED to your file paths and image location\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjberry47%2Fddpsc_phenotypercv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjberry47%2Fddpsc_phenotypercv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjberry47%2Fddpsc_phenotypercv/lists"}