Python wrapper around the BoofCV Computer Vision Library

Related tags

Spring Boot PyBoof
Overview

PyBoof is Python wrapper for the computer vision library BoofCV. Since this is a Java library you will need to have java and javac installed. The former is the Java compiler. In the future the requirement for javac will be removed since a pre-compiled version of the Java code will be made available and automatically downloaded. Installing the Java JDK is platform specific, so a quick search online should tell you how to do it.

To start using the library simply install the latest stable version using pip

pip3 install pyboof

Examples

Examples are included with the source code. You can obtain them by either checkout the source code, as described above, or browsing github here. If you don't check out the source code you won't have example data and not all of the examples will work.

To run any of the examples simply invoke python on the script

  1. cd PyBoof/examples
  2. python example_blur_image.py

Code for applying a Gaussian and mean spatial filter to an image and displays the results.

import numpy as np
import pyboof as pb

original = pb.load_single_band('../data/example/outdoors01.jpg', np.uint8)

gaussian = original.createSameShape() # useful function which creates a new image of the
mean = original.createSameShape()     # same type and shape as the original

# Apply different types of blur to the image
pb.blur_gaussian(original, gaussian, radius=3)
pb.blur_mean(original, mean, radius=3)

# display the results in a single window as a list
image_list = [(original, "original"), (gaussian, "gaussian"), (mean, "mean")]
pb.swing.show_list(image_list, title="Outputs")

input("Press any key to exit")

Installing From Source

One advantage for checking out the source code and installing from source is that you also get all the example code and the example datasets.

git clone --recursive https://github.com/lessthanoptimal/PyBoof.git

If you forgot --recursive then you can checkout the data directory with the following command.

git submodule update --init --recursive

After you have the source code on your local machine you can install it and its dependencies with the following commands:

  1. cd PyBoof
  2. python3 -m venv venv
  3. source venv/bin/activate
  4. pip3 install -r requirements.txt
  5. ./setup.py build
  6. ./setup.py install

Yes you do need to do the build first. This will automatically build the Java jar and put it into the correct place. Creating a virtual environment isn't required but recommended as you can only do so much damage with it.

Supported Platforms

The code has been developed and tested on Ubuntu Linux 20.04. Should work on any other Linux variant. Might work on Mac OS and a slim chance of working on Windows.

Dependencies

PyBoof depends on the following python packages. They should be automatically installed

  • py4j
  • numpy
  • transforms3d

Optional

  • opencv_python (for IO only)
Comments
  • PyBoof concurrency issue

    PyBoof concurrency issue

    Hi,

    I’m having difficulties in running PyBoof concurrently in multiple processes (it’s a Flask application running in GUNICORN). Would it be possible for you to help me? Keep getting the following exception when several worker processes are created (all is well in single process with GEVENT):

    Launching Java process Gateway Server Started Exception in thread "main" py4j.Py4JNetworkException at py4j.GatewayServer.startSocket(GatewayServer.java:788) at py4j.GatewayServer.start(GatewayServer.java:763) at py4j.GatewayServer.start(GatewayServer.java:746) at pyboof.PyBoofEntryPoint.main(PyBoofEntryPoint.java:59) Caused by: java.net.BindException: Address already in use (Bind failed) at java.base/java.net.PlainSocketImpl.socketBind(Native Method) at java.base/java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:436) at java.base/java.net.ServerSocket.bind(ServerSocket.java:395) at py4j.GatewayServer.startSocket(GatewayServer.java:786) ... 3 more

    I guess it’s trying to open the same port on all processes.

    Is this a disabling issue? Should I assign different ports on every process? How would I do it as PyBoof doesn’t seem to have a way to choose a Port?

    Thanks in advance for any help you may provide.

    Luís Ferreira

    opened by lfferreira 19
  • Corrupted binary data in qr code detection

    Corrupted binary data in qr code detection

    Hi, I am using pyboof qr detection and it has been working great.

    However, it has come to my attention that if the qr code content contains binary data of a zipfile, converting to base64 from qr.message results in a corrupted/invalid zipfile. However, using other qr reader library in node.js it is able to detect and convert to base64 and open up the zipfile correctly.

    Unfortunately I am not able to include the qr content as it contains private information.

    for qr in detector.detections:
        message = base64.b64encode(qr.message.encode()).decode()
    return message
    
    under investigation 
    opened by JustLnF 17
  • Not able to read all QRs from same image

    Not able to read all QRs from same image

    Hi

    I am encountering a case that, not all QRs in the image is detected by PyBoof.

    I have also attached sample QR image for testing and wondering if there is anything we can configure with existing PyBoof version? Or it is something BoofCV model need to be improved? Thanks

    Linn Htoo

    QRSample

    bug 
    opened by phohtoo 8
  • Java 17 breaking PyBoof

    Java 17 breaking PyBoof

    Hi, I installed and tested PyBoof two times, one using pip and then other using the source (SNAPSHOT) to test qr-code and micro-qr-codes detection, but none of them worked. After the installation I ran microqr_detect.py and qrcode_detect.py that returned zero detections using all the images provided in data @ 526f3a9.

    I'm using python 3.8.10 and open-jdk 17.0.3.

    bug under investigation 
    opened by j3r3mias 7
  • Could not determine java version from '11.0.3'.

    Could not determine java version from '11.0.3'.

    On running ./setup.py build, I get the following error:

     ./setup.py build 
    running build
    running build_py
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Could not determine java version from '11.0.3'.
    

    Could you please suggest how to install PyBoof and resolve this issue?

    opened by hemangchawla 4
  • LinkageError occurred while loading main class pyboof.PyBoofEntryPoint

    LinkageError occurred while loading main class pyboof.PyBoofEntryPoint

    I'm getting this error when I'm trying to run the example. I'm also getting this

    File "/home/muletezemkedir/.local/share/virtualenvs/pyboof-6ZbX4iA_/lib/python3.7/site-packages/pyboof/init.py", line 48, in check_jvm print(" build dates = {:s} {:s}".format(build_date,java_build_date)) TypeError: unsupported format string passed to NoneType.format

    LinkageError occurred while loading main class pyboof.PyBoofEntryPoint java.lang.UnsupportedClassVersionError: pyboof/PyBoofEntryPoint has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 55.0

    opened by multekedir 2
  • py4j.protocol.Py4JNetworkError

    py4j.protocol.Py4JNetworkError

    Environment: 1,HW:Raspberry Pi 4 2,OS:Linux 3,Python: 3.7 4,Java:JDK11 5,py4j:0.10.8.1 6:PyBoof:0.36.1

    Summery: I have installed pyboof successfully by pip3 on the command line . But when I tried to import pyboof ,a Py4networkError error occured.

    import pyboof Launching Java process エラー: メイン・クラスpyboof.PyBoofEntryPointのロード中にLinkageErrorが発生しました java.lang.UnsupportedClassVersionError: pyboof/PyBoofEntryPoint has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 55.0 Failed to successfully launch the JVM after 5 seconds. Aborting Traceback (most recent call last): File "/home/pi/.local/lib/python3.7/site-packages/py4j/java_gateway.py", line 958, in _get_connection connection = self.deque.pop() IndexError: pop from an empty deque

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/home/pi/.local/lib/python3.7/site-packages/py4j/java_gateway.py", line 1096, in start self.socket.connect((self.address, self.port)) ConnectionRefusedError: [Errno 111] Connection refused During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "", line 1, in File "/home/pi/.local/lib/python3.7/site-packages/pyboof/init.py", line 227, in from pyboof.calib import * File "/home/pi/.local/lib/python3.7/site-packages/pyboof/calib.py", line 2, in from pyboof.ip import * File "/home/pi/.local/lib/python3.7/site-packages/pyboof/ip.py", line 25, in class ThresholdType: File "/home/pi/.local/lib/python3.7/site-packages/pyboof/ip.py", line 27, in ThresholdType FIXED = gateway.jvm.boofcv.factory.filter.binary.ThresholdType.FIXED File "/home/pi/.local/lib/python3.7/site-packages/py4j/java_gateway.py", line 1678, in getattr "\n" + proto.END_COMMAND_PART) File "/home/pi/.local/lib/python3.7/site-packages/py4j/java_gateway.py", line 1012, in send_command connection = self._get_connection() File "/home/pi/.local/lib/python3.7/site-packages/py4j/java_gateway.py", line 960, in _get_connection connection = self._create_connection() File "/home/pi/.local/lib/python3.7/site-packages/py4j/java_gateway.py", line 966, in _create_connection connection.start() File "/home/pi/.local/lib/python3.7/site-packages/py4j/java_gateway.py", line 1108, in start raise Py4JNetworkError(msg, e) py4j.protocol.Py4JNetworkError: An error occurred while trying to connect to the Java server (127.0.0.1:25333)

    Tried things: It seems like launching the java Gateway failed. So I tried to alert the pyboof/init.py gateway = JavaGateway.launch_gateway() #gateway = JavaGateway()

    Then the java gateway is ok,but a new error occured.

    import pyboof Traceback (most recent call last): File "", line 1, in File "/home/pi/.local/lib/python3.7/site-packages/pyboof/init.py", line 101, in if not check_jvm(False): File "/home/pi/.local/lib/python3.7/site-packages/pyboof/init.py", line 49, in check_jvm gateway.jvm.pyboof.PyBoofEntryPoint.nothing() TypeError: 'JavaPackage' object is not callable

    I have used pyboof successfully on Mac, but the same way didn't work well on Raspberry Pi .Could you help with it.

    opened by carol-fan 2
  • ValueError: signal only works in main thread

    ValueError: signal only works in main thread

    Line: https://github.com/lessthanoptimal/PyBoof/blob/be6fec7/pyboof/init.py#L80

    Reason: I am trying to use this library in a GUI application that I am creating.

    Solution: Probably wrap it around a try-catch?

    opened by GokulNC 2
  • Bump numpy from 1.18.4 to 1.21.0

    Bump numpy from 1.18.4 to 1.21.0

    Bumps numpy from 1.18.4 to 1.21.0.

    Release notes

    Sourced from numpy's releases.

    v1.21.0

    NumPy 1.21.0 Release Notes

    The NumPy 1.21.0 release highlights are

    • continued SIMD work covering more functions and platforms,
    • initial work on the new dtype infrastructure and casting,
    • universal2 wheels for Python 3.8 and Python 3.9 on Mac,
    • improved documentation,
    • improved annotations,
    • new PCG64DXSM bitgenerator for random numbers.

    In addition there are the usual large number of bug fixes and other improvements.

    The Python versions supported for this release are 3.7-3.9. Official support for Python 3.10 will be added when it is released.

    :warning: Warning: there are unresolved problems compiling NumPy 1.21.0 with gcc-11.1 .

    • Optimization level -O3 results in many wrong warnings when running the tests.
    • On some hardware NumPy will hang in an infinite loop.

    New functions

    Add PCG64DXSM BitGenerator

    Uses of the PCG64 BitGenerator in a massively-parallel context have been shown to have statistical weaknesses that were not apparent at the first release in numpy 1.17. Most users will never observe this weakness and are safe to continue to use PCG64. We have introduced a new PCG64DXSM BitGenerator that will eventually become the new default BitGenerator implementation used by default_rng in future releases. PCG64DXSM solves the statistical weakness while preserving the performance and the features of PCG64.

    See upgrading-pcg64 for more details.

    (gh-18906)

    Expired deprecations

    • The shape argument numpy.unravel_index cannot be passed as dims keyword argument anymore. (Was deprecated in NumPy 1.16.)

    ... (truncated)

    Commits
    • b235f9e Merge pull request #19283 from charris/prepare-1.21.0-release
    • 34aebc2 MAINT: Update 1.21.0-notes.rst
    • 493b64b MAINT: Update 1.21.0-changelog.rst
    • 07d7e72 MAINT: Remove accidentally created directory.
    • 032fca5 Merge pull request #19280 from charris/backport-19277
    • 7d25b81 BUG: Fix refcount leak in ResultType
    • fa5754e BUG: Add missing DECREF in new path
    • 61127bb Merge pull request #19268 from charris/backport-19264
    • 143d45f Merge pull request #19269 from charris/backport-19228
    • d80e473 BUG: Removed typing for == and != in dtypes
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Exception: Yeah this needs to be implemented.  Turn mmap on if possible

    Exception: Yeah this needs to be implemented. Turn mmap on if possible

    image = pb.re(img_path, np.uint8) config_fh = pb.ConfigFastHessian() config_fh.extractRadius = 4 config_fh.maxFeaturesPerScale = 300 # Create the detector and use default for everything else feature_detector = pb.FactoryDetectDescribe(np.uint8).createSurf(config_detect=config_fh) # Detect features in the first image locs, desc = feature_detector.detect(image)

    Traceback (most recent call last): File "/Users/frank/Documents/workspace/python/vector_search/object_detection_bow/test.py", line 23, in surf_feature('/Users/frank/Downloads/nike1.jpg') File "/Users/frank/Documents/workspace/python/vector_search/object_detection_bow/test.py", line 13, in surf_feature locs, desc = feature_detector.detect(image) File "/usr/local/lib/python3.7/site-packages/pyboof/feature.py", line 257, in detect locations = pyboof.b2p_list_point2D(java_locations,np.double) File "/usr/local/lib/python3.7/site-packages/pyboof/geo.py", line 326, in b2p_list_point2D raise Exception("Yeah this needs to be implemented. Turn mmap on if possible") Exception: Yeah this needs to be implemented. Turn mmap on if possible

    So,what's wrong?

    opened by lijingpeng 1
  • I'm so glad that BoofCV also has a python wrapper!

    I'm so glad that BoofCV also has a python wrapper!

    Really, I'm about to use a python deep learning framework (fast.ai wrapper over PyTorch), and I'll have to do QRCode detection, crop and rotate on images before piping those images to pytorch. I already use qrcode detection from BoofCV in java (top of class implementation), so this fits like a glove! Thanks!

    opened by ivanquirino 1
  • Don't print to stdout on import

    Don't print to stdout on import

    Simple import pyboof prints to stdout

    Gateway Server Started
    Launching Java process: java_port=25333 python_port=2533
    

    And some other things to stderr. Please don't print to stdout. I am making some CLI script and want to use stdout for my output.

    Thanks in advance

    enhancement 
    opened by filiphanes 3
  • py4j.protocol.Py4JNetworkError

    py4j.protocol.Py4JNetworkError

    I upgraded to latest version 0.41 and Im getting this error:

    py4j.protocol.Py4JNetworkError: An error occurred while trying to start the callback server (127.0.0.1:25334)

    environment: Debian GNU/Linux 11 (bullseye)

    opened by FPEPOSHI 1
  • Py4j Gateway issue when re-initializing pyboof

    Py4j Gateway issue when re-initializing pyboof

    Steps to replicate on version 0.40.1:

    import pyboof as pb
    import numpy as np
    pyboof_detector = pb.FactoryFiducial(np.uint8).qrcode()  # Works
    
    pb.init_pyboof()
    pyboof_detector = pb.FactoryFiducial(np.uint8).qrcode()  # Throws an error
    

    The error thrown is:

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/local/lib/python3.9/site-packages/pyboof/recognition.py", line 533, in __init__
        self.boof_image_type = dtype_to_Class_SingleBand(dtype)
      File "/usr/local/lib/python3.9/site-packages/pyboof/image.py", line 512, in dtype_to_Class_SingleBand
        return gateway.jvm.java.lang.Class.forName(class_path)
      File "/usr/local/lib/python3.9/site-packages/py4j/java_gateway.py", line 1709, in __getattr__
        answer = self._gateway_client.send_command(
      File "/usr/local/lib/python3.9/site-packages/py4j/java_gateway.py", line 1036, in send_command
        connection = self._get_connection()
      File "/usr/local/lib/python3.9/site-packages/py4j/java_gateway.py", line 980, in _get_connection
        raise Py4JNetworkError("Gateway is not connected.")
    py4j.protocol.Py4JNetworkError: Gateway is not connected
    

    In the same interpreter, if I run pb.check_jvm(False) afterwards, it returns True

    Versions:

    • Python 3.8.13
    • pyBoof 0.40.1
    • py4j 0.10.9.7
    • cat /etc/os-release -> Debian GNU/Linux 11 (bullseye)

    Any help would be greatly appreciated. Thanks in advance!

    bug under investigation 
    opened by gaurav-t-sca 2
  • Cannot run examples on Ubuntu in a VirtualBox

    Cannot run examples on Ubuntu in a VirtualBox

    Hello,

    I'm trying to run the QR code detection example on a Ubuntu 20.04.3 LTS 64-bit in a VirtualBox in Win10, but it seems PyBoof is not working properly. Running the DetectQrCodeApp from demonstrations.sh works just fine. The Python scripts are ran in a venv.

    Running the qrcode_detect.py example as is or with any of the example images with QR codes says that no QR codes were detected without giving any error:

    (AIKIT-env) mihail@myVB:~/AIKIT/PyBoof/examples$ python qrcode_detect.py Launching Java process Gateway Server Started Detected a total of 0 QR Codes

    Few examples do work, like: gradient.py object_tracking.py (actually tested only under Win10) threshold_image.py

    Others don't, like: detect_lines.py (window with images shows, but no line can be seen, again no errors received)

    video_mosaic.py, error recieved:

    Launching Java process: java_port=25333 python_port=25334 Gateway Server Started Traceback (most recent call last): File "video_mosaic.py", line 15, in config_tracker.klt.toleranceFB = 10.0 File "/home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/pyboof/common.py", line 95, in getattr return object.getattribute(self, item) AttributeError: 'ConfigPointTracker' object has no attribute 'klt'

    estimate_camera_motion.py, error received:

    Launching Java process: java_port=25333 python_port=25334 Gateway Server Started Detected 3150 features in image 0 3179 image 1 Traceback (most recent call last): File "estimate_camera_motion.py", line 40, in matches = associator.associate() File "/home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/pyboof/feature.py", line 205, in associate output.append((association.src, association.dst, association.fitScore)) File "/home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/pyboof/common.py", line 44, in getattr return object.getattribute(self, item) AttributeError: 'JavaWrapper' object has no attribute 'src'

    match_features.py, error received:

    Launching Java process: java_port=25333 python_port=25334 Gateway Server Started Traceback (most recent call last): File "match_features.py", line 22, in locs0, desc0 = feature_detector.detect(image0) File "/home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/pyboof/feature.py", line 298, in detect descriptions = b2p_list_descF64(java_descriptions) File "/home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/pyboof/feature.py", line 42, in b2p_list_descF64 mmap_list_TupleF64_to_python(boof_list, pylist) File "/home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/pyboof/feature.py", line 641, in mmap_list_TupleF64_to_python gateway.jvm.pyboof.PyBoofEntryPoint.mmap.write_List_TupleF64(java_list, num_read) File "/home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/py4j/java_gateway.py", line 1321, in call return_value = get_return_value( File "/home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/py4j/protocol.py", line 326, in get_return_value raise Py4JJavaError( py4j.protocol.Py4JJavaError: An error occurred while calling o55.write_List_TupleF64. : java.lang.IndexOutOfBoundsException: Index 5892 out of bounds for length 5892 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) at java.base/java.util.Objects.checkIndex(Objects.java:359) at java.base/java.util.ArrayList.get(ArrayList.java:427) at pyboof.BoofMemoryMapped.write_List_TupleF64(BoofMemoryMapped.java:75) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) at py4j.Gateway.invoke(Gateway.java:282) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:238) at java.base/java.lang.Thread.run(Thread.java:833)

    I tried different PyBoof versions as well: 0.39.1.post1, 0.38.0, 0.36.0. Python 3.8.10 JDK installed from zulu17.30.15-ca-jdk17.0.1-linux_amd64.deb

    I get similar success running PyBoof directly on Win10 with Python 3.9.9 and Oracle jdk-17_windows-x64. Same examples work and the ones that don't work give same error. Running the DetectQrCodeApp from demonstrations.bat works with the exception that the movie.mp4 example hangs up after just about 1 second, but I could live with this one.

    I have no idea where to search for a possible problem/mistake, so any hint would be useful. The only thing I've still didn't tried is, to use Python 3.5, because the requirement is Python >=3, isn't it?

    Thanks! Mihail

    P.S. Building from source fails on both Ubuntu and Win10. Small part from the output from Ubuntu:

    (AIKIT-env) mihail@myVB:~/AIKIT/PyBoof$ ./setup.py build /home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/setuptools/dist.py:473: UserWarning: Normalizing '0.39.1r1' to '0.39.1.post1' warnings.warn( running build running build_py Starting a Gradle Daemon (subsequent builds will be faster)

    FAILURE: Build failed with an exception.

    • Where: Build file '/home/mihail/AIKIT/PyBoof/build.gradle'

    • What went wrong: Could not compile build file '/home/mihail/AIKIT/PyBoof/build.gradle'. startup failed: General error during semantic analysis: Unsupported class file major version 61

      java.lang.IllegalArgumentException: Unsupported class file major version 61 at groovyjarjarasm.asm.ClassReader.(ClassReader.java:196) at groovyjarjarasm.asm.ClassReader.(ClassReader.java:177) at groovyjarjarasm.asm.ClassReader.(ClassReader.java:163) at groovyjarjarasm.asm.ClassReader.(ClassReader.java:284) at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:81) at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:251) ......

    EDIT: I just found out, that the tools I actually need are the fiducial functions. So I tried to run the examples: fiducial_square_aruco.py fiducial_square_binary_3D.py fiducial_square_image_3D.py

    and all three are only working without intrinsics, which is of no use to me, as I need the 3D position. Otherwise I get the following error:

    Launching Java process: java_port=25333 python_port=25334 Gateway Server Started Configuring detector Traceback (most recent call last): File "fiducial_square_binary_3D.py", line 19, in detector.set_intrinsic(intrinsic) File "/home/mihail/AIKIT/AIKIT-env/lib/python3.8/site-packages/pyboof/recognition.py", line 218, in set_intrinsic distortion = create_narrow_lens_distorter(intrinsic) NameError: name 'create_narrow_lens_distorter' is not defined

    So now I have concrete a question: when I download the Python library by entering pip3 install pyboof, do I get a binary or is it compiling it from source in the background, possibly without letting me know that there were errors like when I try to compile it manually?

    under investigation 
    opened by MihailV1989 2
  • Example Trifocal Stereo Uncalibrated in python?

    Example Trifocal Stereo Uncalibrated in python?

    Hello, I was wondering if the java version's stereo multi-view scene reconstruction examples with uncalibrated cameras exists in python. If it doesn't exist, is it possible to make it in the current version of PyBoof?

    opened by yhu9 3
Owner
Peter Abeles
Peter Abeles
MarioCash is a trust-based multi-dimensional blockchains built with a vision to connect everything and any blockchain networks.

MarioCash We will change the world by blockchain. What is mariocash? MARIOCASH is a trust-based multi-dimensional blockchains (branches) built with a

Brantley·Williams 23 Mar 10, 2022
Google's ML-Kit-Vision demo (android) for pre encoded video.

Android ML Kit Vision demo with Video Google's ML-Kit-Vision demo (android) for pre encoded video. Demos for camera preview and still image are also i

null 17 Dec 29, 2022
🎒 💻 Material for Computer Club Classes

MNNIT Computer Coding Club This repository contains the codes, support links and other relevant materials for every class under Computer Coding Club,

MNNIT Computer Club 409 Dec 18, 2022
Final project of my Computer Science major in high school

BattleShips Final project of my Computer Science major in high school. I've coded an android app (in Java) in which users can play the game "Battle Sh

null 3 Jul 28, 2021
Set of project to test how fast is compilation on your computer

Бенчмарк сборки Android проектов Репозиторий содержит несколько проектов, для которые необходимо запустить тесты и зарепортить их результаты Методика

Android Broadcast 3 Jul 29, 2022
Operating Systems - Concepts of computer operating systems including concurrency, memory management, file systems, multitasking, performance analysis, and security. Offered spring only.

Nachos for Java README Welcome to Nachos for Java. We believe that working in Java rather than C++ will greatly simplify the development process by p

Sabir Kirpal 1 Nov 28, 2021
Pinball 99 for the Ti-99/4A home computer

Pinball 99 For the TI-99/4A home computer Building the cartridge ROM Only tested under Windows The xdt99 tools from https://github.com/endlos99/xdt99

Rasmus Moustgaard 5 Oct 14, 2022
A custom minimap that displays resources all around you while you adventure through Aeternum!

New-World-MiniMap A custom minimap that displays resources all around you while you adventure through Aeternum! Download Download Page Minimap.rar Oth

Mal Ball 7 Dec 9, 2021
Text to Speech Project for Spring Boot and Kotlin, Auth Server, Python with Fast API (gTTS)

TTS-App Text to Speech Project for Spring Boot Module (etc Resource, Auth Server, Python with Fast API (gTTS)) Python의 gTTS lib를 활용하여 텍스트를 음성으로 변환하는 서

Seokhyun 7 Dec 21, 2021
Desafios-bootcamps-dio - Desafios em C#, Java, JavaScript, Kotlin, Python e Ruby dos Bootcamps da Digital Innovation One

Desafios dos Bootcamps da Digital Innovation One Aqui você vai encontrar todos os desafios dos bootcamps que realizei da Digital Innovation One. Os có

Pleiterson Amorim 443 Dec 31, 2022
React native wrapper for Jitsi Meet SDK Library that rely on the native view (Activity / ViewController)

react-native-jitsi-meet-sdk React native wrapper for Jitsi Meet SDK Library. This Library implements the Jitsi SDK with a native activity on the Andro

null 7 May 2, 2022
A simple java wrapper library for alquran-cloud api 🤍☕

A simple java wrapper library for alquran-cloud api ?? It is still under development. ?? How to add this library into your project Maven Step 1. Add t

Anas Elgarhy 14 Oct 9, 2022
Lottie wrapper for React Native.

Lottie for React Native, iOS, and Android Lottie component for React Native (iOS and Android) Lottie is a mobile library for Android and iOS that pars

Lottie - React Native 15.6k Jan 7, 2023
The ANT HAL Service functions as a JNI wrapper for the ANT HAL.

Android ANT HAL Service v.4.0.0 - 25 Aug 2014 The ANT HAL Service functions as a JNI wrapper for the ANT HAL. The ANT Hal Service provides the messagi

Project Kaleidoscope 0 Jun 11, 2022
Java wrapper for the Equibles cryptos API.

Equibles Cryptos API for Java Requirements Building the API client library requires: Java 1.7+ Maven/Gradle Installation To install the API client lib

Equibles 1 Feb 2, 2022
React wrapper for android and ios

Deepvue Aadhaar Offline e-KYC React Native SDK This is a wrapper over Android and iOS SDK for react native. Aadhaar Paperless Offline eKYC is a secure

null 2 May 10, 2022
Inspired by Freedom Wrapper, re-imagined with Tor

Inspired by The Freedom Wrapper The Freedom Wrapper Project is an Open Source and Free Android source code project. The project has moved to an organi

Hunter Burningham 4 Jun 29, 2022
Java wrapper for Agones client SDK.

agones4j How to Use (Developers) Code final class Server { public static void main( final String[] args ) { final var sdk = new tr.com.in

Infumia LTD 6 Dec 15, 2022
Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.

Tinker Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstalling apk. Getting started Add t

Tencent 16.6k Dec 30, 2022