correlation_flow

Crates.iocorrelation_flow
lib.rscorrelation_flow
version0.1.4
sourcesrc
created_at2020-09-01 15:20:00.626737
updated_at2020-10-01 00:09:57.871884
descriptionOptical flow measurement with image phase correlation
homepage
repositoryhttps://github.com/tstellanova/correlation_flow
max_upload_size
id283426
size49,502
Todd Stellanova (tstellanova)

documentation

README

correlation_flow

Optical flow calculation using image correlation for no_std rust. This library will compare small grayscale image blocks (limited to 64x64 pixels currently), and detect the phase correlation between them. This potentially enables applications such as:

  • Create image panoramas by seaming together overlapping images
  • Detect optical flow translation (for machine vision / robotics)
  • Image registration
  • Measure image similarity

Embedded Examples

The examples are designed to be used with J-Link / RTT. We provide a couple different ways to run these:

With probe-run installed

  • Simply run the example (see below) with a JLink debug probe attached to your PX4FLOW
  • If you have problems, edit config to ensure that the probe-run runner is selected

With segger tools installed

  • Edit config to select the segger.gdb runner

  • In one shell run: ./start_gdb_server_jlink.sh

  • In another shell run: JLinkRTTClient

  • Then run your choice of examples

PX4FLOW

This example is intended to run on the PX4FLOW hardware. It simply compares two image frames stored in the app binary.

cargo run --release --example px4flow 

Image Conversion

We used ImageMagick's convert command to generate raw 8-bit grayscale images from png files using eg:

convert 64sq_253_46.png -depth 8 64sq_253_46.gray

Status

  • Detects discrete 2D image translation within a static 64x64 grid (maximum +/- 32 pixel movement)
  • Example that runs on embedded hardware (PX4FLOW)
  • Support > 64x64 block sizes
Commit count: 9

cargo fmt