Coder Social home page Coder Social logo

imagestitch's Introduction

A Fast Algorithm for Material Image Sequential Stitching

In material researches, it is often highly desirable to observe images of whole microscopic sections with high resolution. So that micrograph stitching is an important technology to produce a panorama or larger image by combining multiple images with overlapping areas, while retaining microscopic resolution. However, due to high complexity and variety of microstructure, most traditional methods could not balance the speed and accuracy of stitching strategy. To overcome this problem, we develop a very fast sequential micrograph stitching method, called VFSMS, which employ incremental searching strategy and GPU acceleration to guarantee the accuracy and speed of the stitching results. Experimental results demonstrate that VFSMS achieve state-of-art performance on six types' microscopic datasets on both accuracy and speed aspects. Besides, it significantly outperform the most famous and commonly used software, such as ImageJ, Photoshop and Autostitch.

Note

This repository contains unstable GPU acceleration and will not provide support from now on. And a new version of software, equipped with stable GPU acceleration, multi-process acceleration and more advanced stitching algorithm, can be downloaded and installed at the website.

Requirements

Python 3 need to be installed before running this scripts. To run this algorithm, you need to install the python packages as follows:

opencv-contrib(we have tested oepncv3.3.1 and python 3.6)

As we have tested, python 3.7 could only support for opencv 4.0 which have totally no sift or cuda-sift in conteib package. We recommend to use python 3.6.

GPU Version in windows

We rebuild the opencv-contrib 3.3.1 and cuda9.0 in our code and provide these dll files. If you want to use it, please unrar it in the project address.

Be careful:

Surf cuda in Opencv is good at feature search and not good at feature match. It will raise error if the graphic memory is insuffient.

Examples

There are some examples of VFSMS are shown behind.

Six types’ local and global micrographs and their shooting path. The red translucent region represent one shot from microscope. The red dotted line refer to shooting path. (a) Iron crystal in scanning electron microscopy (SEM) with its detail imaging. (b) Pairwise shooting path of (a) with 2 local images. (c) Dendritic crystal in SEM with its detail imaging. (d) Grid shooting path of (c) with 90 local images. (e) Zircon in SEM with its detail imaging. (f) Zircon in transmission electron microscope (TEM) with its detail imaging. (g) Zircon in black scattered electron imaging (BSE) with its detail imaging. (h) Zircon in cathodoluminescence spectroscopy (CL) with its detail imaging. (i) Shooting path for (e)(f)(g)(h), the numbers of local images depends on the length of sample.

Citation

If you use it successfully for your research please be so kind to cite the paper.

Ma B, Ban X, Huang H, et al. A fast algorithm for material image sequential stitching[J]. Computational Materials Science, 2019, 158: 1-13.

or

@article{MA20191,
title = "A fast algorithm for material image sequential stitching",
journal = "Computational Materials Science",
volume = "158",
pages = "1 - 13",
year = "2019",
issn = "0927-0256",
doi = "https://doi.org/10.1016/j.commatsci.2018.10.044",
url = "http://www.sciencedirect.com/science/article/pii/S0927025618307158",
author = "Boyuan Ma and Xiaojuan Ban and Haiyou Huang and Wanbo Liu and Chuni Liu and Di Wu and Yonghong Zhi"}

Acknowledgement

The authors acknowledge the financial support from the National Key Research and Development Program of China (No. 2016YFB0700500).

imagestitch's People

Contributors

keep-passion 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.