This repository contains image format converters to bridge between clij and boofCV.
Goal of this bridge is allowing easy conversion between clij and boofcv image types. In that way developers can easily run code on the GPU using clij if speed necessary or boofcv on the CPU if a certain computer vision functionality is desired.
Conversion CPU(boofcv) -> GPU(clij) works like this:
// start with a planar stack or single image
Planar<GrayU8> planarIn = //...
GrayU8 slice = //...
// convert to GPU
ClearCLBuffer buffer = clij.convert(planarIn, ClearCLBuffer.class);
// alternatively
ClearCLBuffer buffer = clij.convert(planarIn.getBand(0), ClearCLBuffer.class);
// or
ClearCLBuffer buffer = clij.convert(slice, ClearCLBuffer.class);
// show buffer using ImageJ
clij.show(buffer, "buffer");
Conversion GPU(clij) -> CPU(boofcv) works like this:
// start with a buffer in the GPU
ClearCLBuffer bufferIn = //...
// convert from GPU to boofCV
Planar<GrayU8> input = clij.convert(bufferIn, Planar.class);
// alternatively
GrayU8 input = clij.convert(bufferIn, ImageGray.class);
More fully functional demo code can be found here.
Our build system is maven. To make your project depend on clij-boofcv, just add this dependency to your maven pom.xml file:
<dependency>
<groupId>net.haesleinhuepf</groupId>
<artifactId>clij-boofcv</artifactId>
<version>0.1.0</version>
</dependency>
To allow maven finding this artifact, add a repository to your pom.xml file:
<repository>
<id>clij</id>
<url>http://dl.bintray.com/haesleinhuepf/clij</url>
</repository>
Feedback is highly appreciated. Just tell me via email (rhaase@mpi-cbg.de), as github issue or on twitter @haesleinhuepf.