Releases: OpenFTC/EasyOpenCV
Releases · OpenFTC/EasyOpenCV
v1.7.3
v1.7.2
v1.7.1
- IMPORTANT NOTE: SDK v9.0 or higher is now required!
- Build against FTC SDK v9.x; remove support for Vuforia integration
- Fixes inability to use CameraFactory in OnBotJava due to reference of Vuforia classes no longer in SDK
- Fixes entire RC app crash due to ABI breakage when user pipeline throws an exception
- Handle exceptions in user-provided canvas annotators the same way exceptions in pipelines are handled to prevent entire RC app crash
- Use the modern stacktrace display when handling user exceptions instead of the legacy ESTOP telemetry message
v1.7.0
- Adds new
NATIVE_VIEW
viewport renderer option- Attempts to provide a balance between the stability of the
SOFTWARE
renderer and the speedup seen with theGPU_ACCELERATED
renderer - Drawing is done on the UI thread using the GPU accelerated main canvas, instead of making another canvas as the
GPU_ACCELERATED
renderer does
- Attempts to provide a balance between the stability of the
- Uses anti-aliasing when drawing the statistics overlay to make text more readable on low resolution screens
- Adds ability for user pipelines to hook into the Canvas rendering of frames to the live view
- This is an alternate means besides OpenCV calls to draw annotations from a pipeline
- Allows drawing annotations at the full screen resolution even if performing image processing at a much lower resolution (e.g. 320x240). This allows e.g. drawing actually legible text on a low res image feed.
- Because live view rendering happens on a different thread than the image processing, in order to make use of this feature, pipelines must call
requestViewportDrawHook(object)
duringprocessFrame()
, providing any type of context object they may wish which encapsulates the data needed to draw the annotations. Pipelines then also need to overrideonDrawFrame(...)
which can receive that same object back, and perform the annotation drawing there. - The image sent to the DriverStation is now rendered using an offsceen canvas to ensure that annotations rendered using the canvas will be visible on the DS as well.
- Adds support for MJPEG streaming for webcams
- Requires FTC SDK v8.2
- Uses libjpeg-turbo for JPEG decompression routine
- Allows for streaming at full frame rate at higher resolutions (e.g. 1280x720) which were previously limited to 10FPS due to bandwidth constraints
- Improves ability to use multiple cameras simultaneously by reducing bandwidth usage
- CPU load will be increased due to additional overhead from JPEG decompression
- Uncompressed streaming is still the default; in order to request MJPEG, use the overloaded
startStreaming()
method inOpenCvWebcam
which takes aStreamFormat
argument
- Fixes a deadlock when trying to switch cameras when using
OpenCvSwitchableWebcam
- Fixes cases where mutex might not be released in internal camera v2 implementation
- Updates OpenCV-Repackaged transitive dependency to
4.7.0-A
v1.6.2
v1.6.1
- Fixes bug where if using a webcam, frames were not delivered to user pipeline when calling
startStreaming()
after a previous call tostopStreaming()
even though the stream was in fact restarted successfully (#65) - Scales viewport statistics overlay based on pixel density so that it's not overly large on some devices
v1.6.0
- Add support for getting WhiteBalanceControl for webcams
- Handle pipeline returning empty Mat for viewport display with an error message instead of an unclear exception
- Add SENSOR_NATIVE to camera rotation enum
- Desynchronize setPipeline() from active pipeline frame processing (fixes #58)
- Synchronize getting webcam controls with opening/closing camera
- Add support for getting the CameraCalibrationIdentity for an OpenCvWebcam
- Improve memory leak detection warning
v1.5.3
- Dependency on OpenCV-Repackaged has been changed to a version which bundles the OpenCV native library with the artifact instead of requiring it to be copied to external storage manually. This change was made because:
- The original reason for not bundling the native library was to reduce APK size for wireless deploy time, but that was something that it seems I cared about more than anyone else, and people often seem to have difficulty with setting it up properly for some reason
- There have been multiple requests for 64-bit support, which would have made the dynamic loading from external storage even more complicated
- 64-bit support added
- Increases default webcam permission timeout to 5 seconds
- Removes app name resource strings which shouldn't have ever been there in the first place
OBJ USERS PLEASE NOTE: A build for OBJ is not provided for v1.5.3 since there is functionally no code difference for OBJ users vs. the OBJ build available for 1.5.2.
v1.5.2
- Fixes compatibility with SDK v8.0. You MUST use v1.5.2 (or later) for SDK 8.0. Previous versions Will not work!! Backwards compatibility is NOT maintained for this release unfortunately!
- Fixes possible leak of framebuffer when viewport render thread was restarted