v3.6.3

v3.6.3 enables TensorFlow on the OpenMV 3 / F7, adds uint8/int8/float32 model support, switches the MLX90640/AMG8833 thermal sensors to hardware I2C, adds image-diff histograms and lens-correction offset, and reworks readout control. The image hint constants were renamed and draw_image() scaling changed — read the breaking changes below.

Highlights

  • TensorFlow on OpenMV 3 / F7tf enabled on the F7-based cameras, with uint8/int8/float32 model support.

  • Thermal sensors — MLX90640 and AMG8833 switched to hardware I2C with a new MLX90640 driver.

  • Imaging — image-diff support in get_histogram() and offset correction for lens_corr().

  • draw_image — alpha palettes in grayscale mode and reworked readout control.

  • Breaking: the image hint constants were renamed and draw_image() negative scaling was removed — see the breaking changes.

New features

  • TensorFlow — enabled tf on OpenMV 3 / F7 and updated TensorFlow to support uint8 / int8 / float32 models.

  • get_histogram() — added image-diff capability.

  • lens_corr() — added offset correction.

  • draw_image() — alpha palettes now work in (non-bilinear) grayscale mode, with bilinear-interpolated alpha palettes and image centering; new readout-control code.

Other changes and improvements

  • Switched the MLX90640 and AMG8833 to hardware I2C (new MLX90640 driver, board-config HW I2C for external sensors, higher MLX readout retry), enabled I2C fast-mode-plus on cameras that support it, added cambus read/write-bytes with I2C timings, and skipped applying alpha when it is 0 for performance.

Bug fixes

Camera and imaging:

  • Fixed and sped up rotation correction, the left-edge Bayer-to-YCbCr bug, and added an edge fix to bayer_to_y() / bayer_to_binary().

Tooling:

  • Fixed Python 2/3 errors and the get_statistics() call order.

Breaking API changes

User-visible API breaks between v3.6.2 and v3.6.3. Scope: Python C-modules in modules/ and Python libraries in scripts/libraries/.

Each change is tagged with its impact:

  • minor — narrow API; only affects scripts that used it.

  • behavior — same API, different results; re-check tuned scripts.

Changes are grouped by impact in that order. If you just want to port your code, jump to the migration checklist at the end. Each commit hash links to its diff on GitHub.

image hint constants renamed (minor)

The image drawing hint constants were renamed: image.INTERPOLATE_BILINEARimage.IMAGE_HINT_BILINEAR and image.IMAGE_CENTERimage.IMAGE_HINT_CENTER. Scripts passing the old constant names to draw_image() must use the new names. (These are renamed again to image.BILINEAR / image.CENTER in v3.7.0.)

Commits: 8f8872537

draw_image() negative scaling removed (behavior)

image.draw_image() no longer supports negative scaling, and the texture sample point was moved to the center of the pixel. Scripts that relied on negative scaling to flip an image during draw must flip it another way, and output may shift by up to half a pixel versus before.

Commits: 7e83dbb92

Migration checklist

Rename image.INTERPOLATE_BILINEAR / image.IMAGE_CENTER to image.IMAGE_HINT_BILINEAR / image.IMAGE_HINT_CENTER (the hint-constant rename), and replace any draw_image() negative scaling with an explicit flip (the draw_image scaling change). All other scripts run unchanged.