Git Product home page Git Product logo

dmscanlib's Introduction

dmscanlib

A C++ library decoding storage tubes etched with Data Matrix 2D barcodes. Normally, one or more tubes are placed in a 96-Well microplates. An image of the microplate, containing the barcodes, is scanned with the flatbed scanner and then each tube is decoded.

The library has an acompanying JNI API that is used by the Biobank application to link the contents of the storage tubes to specimens collected from patients.

Build with Makefile

The Makefile crates an executable that runs the tests. Tests were written using Google Test. See below for instructions on how to set up on your development environment.

Using Eclipse for development

You need Eclipse CDT. The following projects are configured for Eclipse:

  • Linux-Debug

    This project runs the unit tests.

  • Linux-imageinfo

    This project creates the template info files for the testing images.

  • Linux-sharedlib

    This project creates the shared library that is used by Biobank.

Running on Ubuntu (or Linux)

  • libdmtx-dev
  • libopenthreads-dev
  • libgoogle-glog-dev
  • libgtest-dev
  • libgflags-dev
  • libopencv-dev
  • libconfig++-dev

JNI

The JNI class used to interface to dmscanlib is DmScanLibJni. To generate the C header file use the following commands:

cd to <scannerConfig_proj>/bin
javah -jni edu.ualberta.med.scannerconfig.dmscanlib.ScanLib
mv edu_ualberta_med_scannerconfig_dmscanlib_ScanLib.h <dmscanlib_proj>/src/jni/DmScanLibJni.h

Where scannerConfig_proj is the Java pluging project used by Biobank.

Google Test

sudo apt-get install cmake
cd /usr/src/gtest
sudo cmake .
sudo make
# copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder
sudo mv libg* /usr/lib/

Use --gtest_filter=* parameter to run a single test.

Valgrind

Use the following commands to check for memory leaks:

valgrind --track-origins=yes --tool=memcheck --leak-check=yes -v --show-reachable=yes --num-callers=10 Linux-Debug/dmscanlib --gtest_filter=TestDmScanLib.decodeFromInfo

dmscanlib's People

Contributors

nloyola avatar cmput301f12t06 avatar thomas41546 avatar mradkie avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.