Coder Social home page Coder Social logo

newandy1 / imaging Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fhooeaist/imaging

0.0 0.0 0.0 89.56 MB

One Framework to rule them all, One Framework to find them, One Framework to bring them all and in the darkness bind them. - The ring's inscription, translated, adapted.

Home Page: https://fhooeaist.github.io/imaging/

License: Mozilla Public License 2.0

Java 100.00%

imaging's Introduction

imaging

Imaging

DOI License: MPL 2.0 GitHub release javadoc Maven Central

The imaging framework provides different functionality in the context of image processing and computer vision. For this there are many image processing related implementations in the project but also connection classes to other frameworks (e.g. OpenCV) to extend its functionality. Get a detailed overview on our maven site.

Getting Started

The project is structured into multiple submodules. API builds the base module which contains the domain classes as well as the interfaces. The core module builds the base implementation with pure java functionality. In addition to these two modules there are modules for connecting to other frameworks for imagej, nd4j, opencv, openimaj, pdfbox, tesseract and microsoft-cognitive-services. These modules are wrappers for functionality that is provided in either of these libraries.

To use the Imaging project you simply need to add the required dependencies like:

<dependency>
    <groupId>science.aist.imaging</groupId>
    <artifactId>api</artifactId> <!-- alternatives core, nd4j, openimaj, imagej, opencv, pdfbox, tesseract, microsoft-cognitive-services -->
    <version>${imaging.version}</version> <!-- e.g. 1.0.0 -->
</dependency>

Examples

A simple example using the Core module (1) creates an image using the ImageFactoryFactory and (2) draws a circle at a given position.

// (1) Create a new image
ImageWrapper<short[][][]> image = ImageFactoryFactory.getImageFactory(short[][][].class).getImage(100, 100, ChannelType.Greyscale);

// (2) Draw on the image
DrawCircle<short[][][]> draw = new DrawCircle<>();
draw.setColor(new double[]{1});
draw.accept(image, new JavaPoint2D(5, 5));

A more advanced example is shown in the following code snippet, that shows the module interoperability of the Imaging project based on the GenericImageFunction. Note: GenericImageFunction casts its input image, and the result of the wrapped function if necessary, which affects its resource requirements.

// (1) Load OpenCV DLLs
AistCVLoader.loadShared();

// (2) Create a random input image for the test
Random rand = new Random(768457);
ImageWrapper<double[][][]> input = ImageFactoryFactory.getImageFactory(double[][][].class).getRandomImage(10, 10, ChannelType.RGB, rand, 0, 255, true);

// (3) Prepare the function to be applied (Note: it is implemented for OpenCV only!)
OpenCVThresholdFunction thresholdFunction = new OpenCVThresholdFunction();
GenericImageFunction<double[][][], double[][][], Mat, Mat> function = new GenericImageFunction<>(thresholdFunction, Mat.class, double[][][].class);

// (4) Apply the function (Note: on a non-OpenCV image)
ImageWrapper<double[][][]> thresholdResult = function.apply(input);

FAQ

If you have any questions, please checkout our FAQ section.

Contributing

First make sure to read our general contribution guidelines.

Licence

Copyright (c) 2020 the original author or authors. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

The following code is under different licence and copyright:

Licence Filepaths
MIT
see LICENSE_MIT_JDIEMKE
api/src/main/java/science/aist/imaging/api/domain/twodimensional/JavaTriangle2D
MIT
see LICENSE_MIT_KIERS
core/src/test/java/science/aist/imaging/service/core/pointprocessing/GrahamConvexHull
Apache
see LICENSE_APACHE
tesseract/tessdata/*

Research

If you are going to use this project as part of a research paper, we would ask you to reference this project by citing it.

DOI

Additionally, this work was used in the following publications:

imaging's People

Contributors

cpraschl avatar pointan avatar renovate-bot 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.