{"id":33179823,"url":"https://github.com/lessthanoptimal/BoofCV","last_synced_at":"2026-01-17T09:01:09.901Z","repository":{"id":37849552,"uuid":"1635932","full_name":"lessthanoptimal/BoofCV","owner":"lessthanoptimal","description":"Fast computer vision library for SFM, calibration, fiducials, tracking,  image processing, and more.","archived":false,"fork":false,"pushed_at":"2026-01-14T04:31:38.000Z","size":49116,"stargazers_count":1165,"open_issues_count":55,"forks_count":269,"subscribers_count":65,"default_branch":"SNAPSHOT","last_synced_at":"2026-01-14T07:24:12.471Z","etag":null,"topics":["3d-reconstruction","3d-vision","android","aztec-code","camera-calibration","computer-vision","image-processing","java","micro-qr-code","micro-qrcode","photogrammetry","qr-code","qrcode","qrcode-generator","qrcode-scanner","stereo-vision","structure-from-motion"],"latest_commit_sha":null,"homepage":"http://boofcv.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lessthanoptimal.png","metadata":{"files":{"readme":"README.md","changelog":"change.txt","contributing":null,"funding":null,"license":"LICENSE-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2011-04-19T14:51:10.000Z","updated_at":"2026-01-14T05:10:49.000Z","dependencies_parsed_at":"2023-10-15T22:58:20.951Z","dependency_job_id":"8a64b061-403c-4372-8f38-0ced0caa0a8a","html_url":"https://github.com/lessthanoptimal/BoofCV","commit_stats":{"total_commits":5205,"total_committers":21,"mean_commits":"247.85714285714286","dds":0.03746397694524495,"last_synced_commit":"032cd16827c288bf3f977d6a2412ff8b293764e3"},"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"purl":"pkg:github/lessthanoptimal/BoofCV","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lessthanoptimal%2FBoofCV","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lessthanoptimal%2FBoofCV/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lessthanoptimal%2FBoofCV/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lessthanoptimal%2FBoofCV/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lessthanoptimal","download_url":"https://codeload.github.com/lessthanoptimal/BoofCV/tar.gz/refs/heads/SNAPSHOT","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lessthanoptimal%2FBoofCV/sbom","scorecard":{"id":585702,"data":{"date":"2025-08-11","repo":{"name":"github.com/lessthanoptimal/BoofCV","commit":"c01206d456c6682f8fbf1a9a0fd9e68ac241fb8a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.4,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":9,"reason":"11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/22 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/gradle.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE-2.0.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Binary-Artifacts","score":7,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: integration/boofcv-android/examples/fragment/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: integration/boofcv-android/examples/video/gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/lessthanoptimal/BoofCV/gradle.yml/SNAPSHOT?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/lessthanoptimal/BoofCV/gradle.yml/SNAPSHOT?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 16 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T20:27:17.674Z","repository_id":37849552,"created_at":"2025-08-20T20:27:17.674Z","updated_at":"2025-08-20T20:27:17.674Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28504596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["3d-reconstruction","3d-vision","android","aztec-code","camera-calibration","computer-vision","image-processing","java","micro-qr-code","micro-qrcode","photogrammetry","qr-code","qrcode","qrcode-generator","qrcode-scanner","stereo-vision","structure-from-motion"],"created_at":"2025-11-16T03:00:36.843Z","updated_at":"2026-01-17T09:01:08.993Z","avatar_url":"https://github.com/lessthanoptimal.png","language":"Java","readme":"[![Build Status](https://github.com/lessthanoptimal/BoofCV/actions/workflows/gradle.yml/badge.svg)](https://github.com/lessthanoptimal/BoofCV/actions/workflows/gradle.yml)\n[![Join the chat at https://gitter.im/lessthanoptimal/BoofCV](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/lessthanoptimal/BoofCV?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Maven Central](https://img.shields.io/maven-central/v/org.boofcv/boofcv-core.svg)](https://maven-badges.herokuapp.com/maven-central/org.boofcv/boofcv-core)\n\n------------------------------------------------------\n# Table of Contents\n\n* [Introduction](#introduction)\n  * [Cloning Repository](#cloning-git-repository)\n  * [Quick Start](#quick-start-examples-and-demonstrations)\n  * [Gradle and Maven](#adding-to-gradle-and-maven-projects)\n* [Building from Source](#building-from-source)\n* [Dependencies](#dependencies)\n* [Help/Contact](#contact)\n\n------------------------------------------------------\n## Introduction\n\nBoofCV is an open source real-time computer vision library written entirely in Java and released under the Apache License 2.0. Functionality includes low-level image processing, camera calibration, feature detection/tracking, structure-from-motion, classification, and recognition.\n\n- [ Project Webpage ]( http://boofcv.org                                  )\n- [ Message Board   ]( https://groups.google.com/group/boofcv             )\n- [ Bug Reports     ]( https://github.com/lessthanoptimal/BoofCV/issues   )\n- [ Repository      ]( https://github.com/lessthanoptimal/BoofCV          )\n\n## Cloning GIT Repository\n\nThe bleeding edge source code can be obtained by cloning the git repository.\n\n```\ngit clone -b SNAPSHOT --recursive https://github.com/lessthanoptimal/BoofCV.git boofcv\n```\n\nIs the data directory empty? That's because you didn't follow instructions and skipped --recursive. Fix that by doing the following.\n```\ncd boofcv\ngit submodule update --init --recursive\n```\n\n## Quick Start Examples and Demonstrations\nTo run BoofCV you need Java 11 or newer and any free version will work, e.g. [Zulu](https://www.azul.com/downloads/?package=jdk). To build BoofCV, just let the Gradle script handle everything. It will automatically download what it needs and ignore your local JDK if it's not compatible.\n\n```bash\ncd boofcv\ngit clean -fd main # Removes stale autogenerated code\n./gradlew autogenerate\n./gradlew examplesJar\njava -jar examples/examples.jar\n./gradlew demonstrationsJar\njava -jar demonstrations/demonstrations.jar\n```\n\nAll the code for examples and demonstrations is in boofcv/examples and boofcv/demonstrations. Example code is intended easy to understand, so look there first.\n\nClick [HERE](applications/readme.md) for instruction on building and running Applications.\nThere you can calibrate cameras, create QR codes, batch scan for QR codes, batch downsample images, ... etc.\n\n## Maven Central Repository\n\nBoofCV is on [Maven Central](http://search.maven.org/) and can be easily added to your favorite build systems; Maven, Gradle, ... etc. It's divided up into many modules, but most people will just need 'boofcv-core'. Additional modules are listed below for GUI and IO components. To include it in a Gradle project add the following to your dependencies:\n\nFor Gradle projects:\n```\ndependencies {\n    api(group: 'org.boofcv', name: 'boofcv-core', version: '1.2.4')\n}\n```\n\nHere are a list of the most commonly used modules and what they are for:\n\n| Name                 | Description                                                                                                          |\n|----------------------|----------------------------------------------------------------------------------------------------------------------|\n| boofcv-core          | All the core libraries without any of the integration modules listed below                                           |\n| boofcv-android       | Useful functions for working inside of Android devices.                                                              |\n| boofcv-ffmpeg        | [javacpp-presets](https://github.com/bytedeco/javacpp-presets) their ffmpeg wrapper is used for reading video files. |\n| boofcv-javacv        | [JavaCV](https://github.com/bytedeco/javacv) is a wrapper around OpenCV mainly for file IO.                          |\n| boofcv-jcodec        | [JCodec](http://jcodec.org/) is a pure Java video reader/writer.                                                     |\n| boofcv-kotlin        | [Kotlin](https://kotlinlang.org/) extensions which take advantage of Kotlin's unique features.                       |\n| boofcv-pdf           | Needed to render fiduals as PDF documents                                                                            |\n| boofcv-swing         | Visualization using Java Swing. Required for examples and demonstrations.                                            |\n| boofcv-WebcamCapture | A few functions that make [WebcamCapture](http://webcam-capture.sarxos.pl/) even easier to use.                      |\n\n## Directories\n\n| Directory       | Description                                                                                                         |\n|-----------------|---------------------------------------------------------------------------------------------------------------------|\n| applications/   | Helpful applications                                                                                                |\n| data/           | Directory containing optional data used by applets and examples.                                                    |\n| demonstrations/ | Demonstration code which typically lets experiment by changing parameters in real-time                              |\n| examples/       | Set of example code designed to be easy to read and understand.                                                     |\n| integration/    | Contains code which allows BoofCV to be easily integrated with 3rd party libraries. Primary for video input/output. |\n| main/           | Contains the source code for BoofCV                                                                                 |\n\n------------------------------------\n# Building from Source\n\nBuilding and installing BoofCV into your local Maven repository is easy[1] using the [gradlew](https://docs.gradle.org/current/userguide/gradle_wrapper.html) script:\n```bash\ncd boofcv\ngit clean -fd main                # Removes stale autogenerated code\n./gradlew autogenerate            # Creates auto generated files\n./gradlew publishToMavenLocal     # Installs it into the local maven repository \n```\nIf you wish to have jars instead, the following commands are provided.\n```bash\n./gradlew oneJarBin               # Builds a single jar with all of BoofCV in it\n./gradlew createLibraryDirectory  # Puts all jars and dependencies into boofcv/library\n./gradlew alljavadoc              # Combines all JavaDoc from all sub-projects into a single set\n```\n\n[1] A couple of the integration submodules have a custom build process that can't be performed by Gradle. The script is smart enough to ignore modules and tell you that it is doing so if you haven't configured it yet.\n\n## IntelliJ\n\nIntelliJ is the recommended IDE for use with BoofCV. With IntelliJ you can directly import the Gradle project. \n\n1. File-\u003eProject From Existing Sources\n2. Select your local \"boofcv\" directory\n3. Confirm that you wish to import the Gradle project\n\n## Eclipse\n\nSimilar to IntelliJ, you can now import Gradle projects like BoofCV using the Buildship tooling. [Instructions](https://www.vogella.com/tutorials/EclipseGradle/article.html)\n\n-----------------------------------------------------------\n# Dependencies\n\nCore BoofCV modules depends on the following libraries\n\n- [ args4j        ]( http://args4j.kohsuke.org/)\n- [ EJML          ]( http://code.google.com/p/efficient-java-matrix-library )\n- [ GeoRegression ]( http://georegression.org )\n- [ DDogleg       ]( http://ddogleg.org)\n- [ DeepBoof      ]( https://github.com/lessthanoptimal/DeepBoof)\n\nThe following is required for unit tests\n\n- [ JUnit   ]( http://junit.sourceforge.net/)\n\nCode from the following libraries has been integrated into BoofCV\n\n- [General Purpose FFT by Takuya Ooura](http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html)\n  * Java port by Piotr Wendykier with modifications by Peter Abeles to recycle memory.\n  \nThe optional sub-projects in integration also have several dependencies. See those sub-projects for a list of their dependencies.\n\n------------------------------------\n# Contact\n\nFor questions or comments about BoofCV please use the message board. Only post a bug report after doing some due diligence to make sure it is really a bug and that it has not already been reported.\n\n[Message Board](http://groups.google.com/group/boofcv)\n","funding_links":[],"categories":["人工智能"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flessthanoptimal%2FBoofCV","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flessthanoptimal%2FBoofCV","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flessthanoptimal%2FBoofCV/lists"}