Git Product home page Git Product logo

vessel-tools's Introduction

Vessel Tools
------------

Introduction
------------
These tools were developed to carry out image processing and analysis on vascular network images created in a specific way - by staining of the luminal epithelium.  Since the stain does not label the interior of vessels, and does not always label the vessel wall uniformly or completely, special segmentation tools were needed.

The tools were almost all developed as C++ programs employing the ITK library, at least for reading and writing tiff files, and also for certain filters.  Each tool is built as an executable that can be invoked from the command line.  For ease of use in each case a GUI has been written using Qt.  The user specifies file names, input parameters etc. in the GUI, and then invokes the executable program that does the work by clicking a button.  The program's completion code indicates that the run was successful, or that an error was encountered.

Besides the basic set of programs needed to extract the network topology, there are many tools for a range of associated purposes.  In most cases the names are self-explanatory.  Our group makes extensive use of Amira and CMGUI, and for this reason there are several tools for operating on network files in these formats.

For assistance with building or using the tools please contact [email protected]

Building the tools
------------------
The "engine" program builds are set up using cmake.  For example, with the MS Visual Studio 2010 C++ compiler on Windows, the setup command is:

cmake -G "Visual Studio 10 Win64"

The CMakeLists.txt file associated with each program contains instructions to copy the resulting .exe file to vessel-tools\bin\exec.

The Qt GUI programs are built with Qt Creator, from the .pro files, and the .exe files are copied to vessel-tools\bin.

Processing an image
-------------------
Starting with an 8-bit greyscale image, raw.tif, the sequence of steps to extract the network topology is as follows:

- smoother
This tool creates a smoothed image that serves as the background for local thresholding.  The input parameter is the "radius" of the cube used for voxel averaging.
raw.tif -> sm.tif

- thresholder
Local thresholding is specified by two parameters.
raw.tif, sm.tif -> thresh.tif

- filler
The main filling tool operates on the binary thresholded image, with three parameters.
thresh.tif -> fill.tif

- holefiller
Remaining holes in the segmented image are removed.
fill.tif -> seg.tif

- connecter
Connected objects in the segmented image are identified and saved as separate images.  Only the largest will be of interest.
seg.tif -> conn.tif

- thinner
The segmented, connected image is skeletonised.
conn.tif -> skel.tif

- topology
Information in the segmented and skeleton images is combined to generate a description of network topology as a set of nodes and edges, together with vessel diameters.  The network description is conveyed by two CMGUI files.
conn.tif, skel.tif -> topo.exelem, topo.exnode

vessel-tools's People

Contributors

gibbogle avatar

Watchers

James Cloos 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.