GithubHelp home page GithubHelp logo

opencv-repackaged's People

Contributors

frogbots4634 avatar noahandrews avatar windwoes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

opencv-repackaged's Issues

libOpenCvNative.so MD5 error

We are trying to use EasyOpenCV on a Moto G5 Plus running Android 7.0 . The libOpenCvNative.so file was copied using the ADB PUSH command to the /sdcard/FIRST folder. On staring the Robot Controller app we are getting the following error - " libOpenCvNative.so is corrupted - libOpenCvNative.so is present in the FIRST on the internal storage. However, the MD5 checksum, does not match what is expected. Any OpenCV-enabled OpModes will likely crash. Delete and re-download the file."

Running the following command using adb shell -
md5sum libOpenCvNative.so
returns
07a377983266cb64bd649bb233452970 libOpenCvNative.so

Any hints to what may be causing this ?

Manifest file has old opencv version info

The AndroidManifest.xml file has old (4.1.0) opencv version info.
This can be corrected by removing the following lines from the manifest:

android:versionCode="4100"
android:versionName="4.1.0">

and adding the definitions to the build.gradle before the android section:

def openCVersionName = "4.5.3"
def openCVersionCode = ((4 * 100 + 5) * 100 + 3) * 10 + 0

and the reference on those in the android.defaultConfig section:

versionCode openCVersionCode
versionName openCVersionName

The compileOnly reference to RobotCore should also be updated to 7.0.

Finally, it may be possible to use the annotation org.firstinspires.ftc.ftccommon.external.OnCreate on the loadNativeLibOnStartRobot method as opposed to the opModeRegistrar. Not sure it is a huge difference, but may save some attempted reloads.

OpenCV contrib modules (ArUco)

Our team is interested in using code from opencv-contrib modules, specifically org.opencv.aruco. Is there anyway to do this while using EasyOpenCV and OpenCV-Reapackaged?

Examples and Instructions

I am fairly new to android and FTC. Last year I successfully used EasyOpenCV (looks like it was v 1.5). This year I plan on using EasyOpenCV again, and started by using your latest version. Initially, I'm getting an error on the import I used last year (import org.openftc.easyopencv.OpenCvCamera). I'm guessing the package naming changed with the new version. Last year there was some sample code in an "examples" folder that was a great help. Any chance that could be added for the updated version?

Also, from the instructions, I wasn't sure which libOpenCvAndroid453.so to use (the one in arm64-v8a or the one in armeabi-v7a). In addition, last year there were instructions to remove the arm64-v8a from the build.common.gradle file. Is that still an issue?

64 bit native library?

When I start the Robot Controller, I get
Could not load OpenCV native library because app is running in 64-bit mode. Please remove the arm64-v8a entries from build.common.gradle
When I remove the arm64-v8a entries it works fine. Just wondering if there is a 64 bit version of this library somewhere?

libOpenCvNative.so should be put into android external storage

In readme.md, it says that libOpenCvNative.so should be put in android internal storage. But it does not make sense since the internal storage of an app is hidden for the users. The only thing we can access from the file system is an app's external storage.

Accured: putting libOpenCvNative.so in internal storage

Expected: putting libOpenCvNative.so in external storage

ref: https://stackoverflow.com/questions/5092591/what-are-the-differences-among-internal-storage-external-storage-sd-card-and-r

missing md5.txt files

Md5 signatures are found on libs in /doc, but there are no md5.txt files in this project. They'd be useful to check for file corruption.

Why are shared objects not packaged with the AAR?

Right now you instruct users to copy libOpenCvNative.so to a specific directory on the device and then you load the shared object from that specific path via System.load. This adds an extra step to the setup process, and I was wondering if there was any reason you don't place the shared object under src/main/jniLibs/{ABI TRIPLE}/ where it will be automatically included in the AAR?

If there's no reason that this isn't being done then I'll go ahead and make a PR that packages the shared objects in this manner.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.