Skip to content

Releases: MikeHughesKent/PyFibreBundle

PyFibreBundle v1.3.5

24 Sep 16:01
Compare
Choose a tag to compare

PyFibreBundle

PyFibreBundle

PyFibreBundle is a Python package for processing images captured through optical fibre bundles.

Full documentation is available on Readthedocs and a summary of the current functionality is below.

PyFibreBundle is fast enough for live imaging as well as for offline research; frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and
holographic endomicroscopy, but there are also potential applications in endoscopy, industrial inspection etc.

Development is led by Mike Hughes at the Applied Optics Group, Physics & Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome. Academic collaborations are welcomed and consultancy is available for potential commercial users, get in touch

Capabilities

Core Functions

  • Supports monochrome and multi-channel (e.g. colour) images.
  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Determine core spacing.
  • Find locations of all cores in bundle.
  • Core removal by Gaussian filtering.
  • Core removal using custom edge filtering.
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple shifted images to improve resolution.

Read the full documentation for more details.

Getting Started

There are three ways to get PyFibreBundle:

  • Download the latest stable release from github and unzip. This will give you all the examples,
    tests and test data.
  • Clone the github repository using git. This will give you the latest updates but more chance of bugs.
  • Install the latest stable release using:
pip install PyFibreBundle 

The third option (using pip install) should find and install all the dependencies. For the other two options
you will need to either manually check you have the requirements installed,
or navigate to the PyFibreBundle folder on your machine and run:

pip install -r requirements.txt

to install the dependencies. You may wish to create a virtual environment using Conda/venv first to avoid conflicts with your existing python setup.

Note that the pip install doesn't include the examples and tests which still need to be downloaded from Github.

Once installed, you can try running the examples.

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Major Release History

  • v1.3.5 Fixed deprecated scipy function and other small bugs.
  • v1.3.4 Option to normalise by colour channel for reconstruction by linear interpolation
  • v1.3.3 Core finding works better with all data types
  • v1.3.2 Improvements to normalisation and core finding to work with a wider range of bundles.
  • v1.3.1 Small improvements to processing pipeline for speed and consistency.
  • v1.3.0 Adjustments to the way masking, cropping and edge filtering are pipelined in PyBundle class to give more intuitive behaviour and allow pre-calibration by calling calibrate().
  • v1.2.2 Improved docs, examples are now cross-platform
  • v1.2.0 Support for colour images added
  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Contributions

Cheng Yong Xin, Joseph, who contributed to triangular linear interpolation; Callum McCall who contributed to the super resolution component, Petros Giataganas who developed some of the Matlab code that parts of this library were ported from.

Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.

PyFibreBundle v1.3.4

10 Aug 16:58
Compare
Choose a tag to compare

PyFibreBundle

PyFibreBundle

PyFibreBundle is a Python package for processing images captured through optical fibre bundles.

Full documentation is available on Readthedocs and a summary of the current functionality is below.

PyFibreBundle is fast enough for live imaging as well as for offline research; frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and
holographic endomicroscopy, but there are also potential applications in endoscopy, industrial inspection etc.

Developed is led by Mike Hughes at the Applied Optics Group, School of Physics & Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome. Academic collaborations are welcomed and consultancy is available for potential commercial users, get in touch

Capabilities

Core Functions

  • Supports monochrome and multi-channel (e.g. colour) images.
  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Determine core spacing.
  • Find locations of all cores in bundle.
  • Core removal by Gaussian filtering.
  • Core removal using custom edge filtering.
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple shifted images to improve resolution.

Read the full documentation for more details.

Getting Started

There are three ways to get PyFibreBundle:

  • Download the latest stable release from github and unzip. This will give you all the examples,
    tests and test data.
  • Clone the github repository using git. This will give you the latest updates but more chance of bugs.
  • Install the latest stable release using:
pip install PyFibreBundle 

The third option (using pip install) should find and install all the dependencies. For the other two options
you will need to either manually check you have the requirements installed,
or navigate to the PyFibreBundle folder on your machine and run:

pip install -r requirements.txt

to install the dependencies. You may wish to create a virtual environment using Conda/venv first to avoid conflicts with your existing python setup.

Note that the pip install doesn't include the examples and tests which still need to be downloaded from Github.

Once installed, you can try running the examples.

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Major Release History

  • v1.3.4 Option to normalise by colour channel for reconstruction by linear interpolation
  • v1.3.3 Core finding works better with all data types
  • v1.3.2 Improvements to normalisation and core finding to work with a wider range of bundles.
  • v1.3.1 Small improvements to processing pipeline for speed and consistency.
  • v1.3.0 Adjustments to the way masking, cropping and edge filtering are pipelined in PyBundle class to give more intuitive behaviour and allow pre-calibration by calling calibrate().
  • v1.2.2 Improved docs, examples are now cross-platform
  • v1.2.0 Support for colour images added
  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Contributions

Cheng Yong Xin, Joseph, who contributed to triangular linear interpolation; Callum McCall who contributed to the super resolution component, Petros Giataganas who developed some of the Matlab code that parts of this library were ported from.

Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.

PyFibreBundle v1.3.3

25 May 16:30
Compare
Choose a tag to compare

PyFibreBundle

PyFibreBundle

PyFibreBundle is a Python package for processing images captured through optical fibre bundles.

Full documentation is available on Readthedocs and a summary of the current functionality is below.

PyFibreBundle is fast enough for live imaging as well as for offline research; frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and
holographic endomicroscopy, but there are also potential applications in endoscopy, industrial inspection etc.

Developed is led by Mike Hughes at the Applied Optics Group, School of Physics & Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome. Academic collaborations are welcomed and consultancy is available for potential commercial users, get in touch

Capabilities

Core Functions

  • Supports monochrome and multi-channel (e.g. colour) images.
  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Determine core spacing.
  • Find locations of all cores in bundle.
  • Core removal by Gaussian filtering.
  • Core removal using custom edge filtering.
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple shifted images to improve resolution.

Read the full documentation for more details.

Getting Started

There are three ways to get PyFibreBundle:

  • Download the latest stable release from github and unzip. This will give you all the examples,
    tests and test data.
  • Clone the github repository using git. This will give you the latest updates but more chance of bugs.
  • Install the latest stable release using:
pip install PyFibreBundle 

The third option (using pip install) should find and install all the dependencies. For the other two options
you will need to either manually check you have the requirements installed,
or navigate to the PyFibreBundle folder on your machine and run:

pip install -r requirements.txt

to install the dependencies. You may wish to create a virtual environment using Conda/venv first to avoid conflicts with your existing python setup.

Note that the pip install doesn't include the examples and tests which still need to be downloaded from Github.

Once installed, you can try running the examples.

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Major Release History

  • v1.3.3 Core finding works better with all data types
  • v1.3.2 Improvements to normalisation and core finding to work with a wider range of bundles.
  • v1.3.1 Small improvements to processing pipeline for speed and consistency.
  • v1.3.0 Adjustments to the way masking, cropping and edge filtering are pipelined in PyBundle class to give more intuitive behaviour and allow pre-calibration by calling calibrate().
  • v1.2.2 Improved docs, examples are now cross-platform
  • v1.2.0 Support for colour images added
  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Contributions

Cheng Yong Xin, Joseph, who contributed to triangular linear interpolation; Callum McCall who contributed to the super resolution component, Petros Giataganas who developed some of the Matlab code that parts of this library were ported from.

Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.

PyFibreBundle v1.3.2

25 May 16:14
Compare
Choose a tag to compare

PyFibreBundle

PyFibreBundle

PyFibreBundle is a Python package for processing images captured through optical fibre bundles.

Full documentation is available on Readthedocs and a summary of the current functionality is below.

PyFibreBundle is fast enough for live imaging as well as for offline research; frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and
holographic endomicroscopy, but there are also potential applications in endoscopy, industrial inspection etc.

Developed is led by Mike Hughes at the Applied Optics Group, School of Physics & Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome. Academic collaborations are welcomed and consultancy is available for potential commercial users, get in touch

Capabilities

Core Functions

  • Supports monochrome and multi-channel (e.g. colour) images.
  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Determine core spacing.
  • Find locations of all cores in bundle.
  • Core removal by Gaussian filtering.
  • Core removal using custom edge filtering.
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple shifted images to improve resolution.

Read the full documentation for more details.

Getting Started

There are three ways to get PyFibreBundle:

  • Download the latest stable release from github and unzip. This will give you all the examples,
    tests and test data.
  • Clone the github repository using git. This will give you the latest updates but more chance of bugs.
  • Install the latest stable release using:
pip install PyFibreBundle 

The third option (using pip install) should find and install all the dependencies. For the other two options
you will need to either manually check you have the requirements installed,
or navigate to the PyFibreBundle folder on your machine and run:

pip install -r requirements.txt

to install the dependencies. You may wish to create a virtual environment using Conda/venv first to avoid conflicts with your existing python setup.

Note that the pip install doesn't include the examples and tests which still need to be downloaded from Github.

Once installed, you can try running the examples.

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Major Release History

  • v1.3.2 Improvements to normalisation and core finding to work with a wider range of bundles.
  • v1.3.1 Small improvements to processing pipeline for speed and consistency.
  • v1.3.0 Adjustments to the way masking, cropping and edge filtering are pipelined in PyBundle class to give more intuitive behaviour and allow pre-calibration by calling calibrate().
  • v1.2.2 Improved docs, examples are now cross-platform
  • v1.2.0 Support for colour images added
  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Contributions

Cheng Yong Xin, Joseph, who contributed to triangular linear interpolation; Callum McCall who contributed to the super resolution component, Petros Giataganas who developed some of the Matlab code that parts of this library were ported from.

Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.

PyFibreBundle v1.3.1

23 May 11:12
Compare
Choose a tag to compare

PyFibreBundle

PyFibreBundle

PyFibreBundle is a Python package for processing images captured through optical fibre bundles.

Full documentation is available on Readthedocs and a summary of the current functionality is below.

PyFibreBundle is fast enough for live imaging as well as for offline research; frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and
holographic endomicroscopy, but there are also potential applications in endoscopy, industrial inspection etc.

Developed is led by Mike Hughes at the Applied Optics Group, School of Physics & Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome. Academic collaborations are welcomed and consultancy is available for potential commercial users, get in touch

Capabilities

Core Functions

  • Supports monochrome and multi-channel (e.g. colour) images.
  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Determine core spacing.
  • Find locations of all cores in bundle.
  • Core removal by Gaussian filtering.
  • Core removal using custom edge filtering.
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple shifted images to improve resolution.

Read the full documentation for more details.

Getting Started

There are three ways to get PyFibreBundle:

  • Download the latest stable release from github and unzip. This will give you all the examples,
    tests and test data.
  • Clone the github repository using git. This will give you the latest updates but more chance of bugs.
  • Install the latest stable release using:
pip install PyFibreBundle 

The third option (using pip install) should find and install all the dependencies. For the other two options
you will need to either manually check you have the requirements installed,
or navigate to the PyFibreBundle folder on your machine and run:

pip install -r requirements.txt

to install the dependencies. You may wish to create a virtual environment using Conda/venv first to avoid conflicts with your existing python setup.

Note that the pip install doesn't include the examples and tests which still need to be downloaded from Github.

Once installed, you can try running the examples.

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Major Release History

  • v1.3.1 Small improvements to processing pipeline for speed and consistency.
  • v1.3.0 Adjustments to the way masking, cropping and edge filtering are pipelined in PyBundle class to give more intuitive behaviour and allow pre-calibration by calling calibrate().
  • v1.2.2 Improved docs, examples are now cross-platform
  • v1.2.0 Support for colour images added
  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Contributions

Cheng Yong Xin, Joseph, who contributed to triangular linear interpolation; Callum McCall who contributed to the super resolution component, Petros Giataganas who developed some of the Matlab code that parts of this library were ported from.

Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.

PyFibreBundle v1.3.0

17 May 12:21
Compare
Choose a tag to compare

PyFibreBundle

PyFibreBundle

PyFibreBundle is a Python package for processing images captured through optical fibre bundles.

Full documentation is available on Readthedocs and a summary of the current functionality is below.

PyFibreBundle is fast enough for live imaging as well as for offline research; frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and
holographic endomicroscopy, but there are also potential applications in endoscopy, industrial inspection etc.

Developed is led by Mike Hughes at the Applied Optics Group, School of Physics & Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome. Academic collaborations are welcomed and consultancy is available for potential commercial users, get in touch

Capabilities

Core Functions

  • Supports monochrome and multi-channel (e.g. colour) images.
  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Determine core spacing.
  • Find locations of all cores in bundle.
  • Core removal by Gaussian filtering.
  • Core removal using custom edge filtering.
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple shifted images to improve resolution.

Read the full documentation for more details.

Getting Started

There are three ways to get PyFibreBundle:

  • Download the latest stable release from github and unzip. This will give you all the examples,
    tests and test data.
  • Clone the github repository using git. This will give you the latest updates but more chance of bugs.
  • Install the latest stable release using:
pip install PyFibreBundle 

The third option (using pip install) should find and install all the dependencies. For the other two options
you will need to either manually check you have the requirements installed,
or navigate to the PyFibreBundle folder on your machine and run:

pip install -r requirements.txt

to install the dependencies. You may wish to create a virtual environment using Conda/venv first to avoid conflicts with your existing python setup.

Note that the pip install doesn't include the examples and tests which still need to be downloaded from Github.

Once installed, you can try running the examples.

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Major Release History

  • v1.3 Adjustments to the way masking, cropping and edge filtering are pipelined in PyBundle class to give more intuitive behaviour and allow pre-calibration by calling calibrate().
  • v1.2.2 Improved docs, examples are now cross-platform
  • v1.2.0 Support for colour images added
  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Contributions

Cheng Yong Xin, Joseph, who contributed to triangular linear interpolation; Callum McCall who contributed to the super resolution component, Petros Giataganas who developed some of the Matlab code that parts of this library were ported from.

Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.

PyFibreBundle v1.2.2

15 May 12:28
Compare
Choose a tag to compare

PyFibreBundle

PyFibreBundle

PyFibreBundle is a Python package for processing images captured through optical fibre bundles.

Full documentation is available on Readthedocs and a summary of the current functionality is below.

PyFibreBundle is fast enough for live imaging as well as for offline research; frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and
holographic endomicroscopy, but there are also potential applications in endoscopy, industrial inspection etc.

Developed is led by Mike Hughes at the Applied Optics Group, School of Physics & Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome. Academic collaborations are welcomed and consultancy is available for potential commercial users, get in touch

Capabilities

Core Functions

  • Supports monochrome and multi-channel (e.g. colour) images.
  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Determine core spacing.
  • Find locations of all cores in bundle.
  • Core removal by Gaussian filtering.
  • Core removal using custom edge filtering.
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple shifted images to improve resolution.

Read the full documentation for more details.

Getting Started

There are three ways to get PyFibreBundle:

  • Download the latest stable release from github and unzip. This will give you all the examples,
    tests and test data.
  • Clone the github repository using git. This will give you the latest updates but more chance of bugs.
  • Install the latest stable release using:
pip install PyFibreBundle 

The third option (using pip install) should find and install all the dependencies. For the other two options
you will need to either manually check you have the requirements installed,
or navigate to the PyFibreBundle folder on your machine and run:

pip install -r requirements.txt

to install the dependencies. You may wish to create a virtual environment using Conda/venv first to avoid conflicts with your existing python setup.

Note that the pip install doesn't include the examples and tests which still need to be downloaded from Github.

Once installed, you can try running the examples.

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Major Release History

  • v1.2.2 Improved docs, examples are now cross-platform
  • v1.2.0 Support for colour images added
  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Contributions

Cheng Yong Xin, Joseph, who contributed to triangular linear interpolation; Callum McCall who contributed to the super resolution component, Petros Giataganas who developed some of the Matlab code that parts of this library were ported from.

Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.

PyFibreBundle v1.2.1

15 May 09:54
Compare
Choose a tag to compare

PyFibreBundles

PyFibreBundle

PyFibreBundle is a Python package for processing images captured through optical fibre bundles.

Full documentation is available on Readthedocs and a summary of the current functionality is below.

PyFibreBundle is fast enough for live imaging as well as for offline research; frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and
holographic endomicroscopy, but there are also potential applications in endoscopy, industrial inspection etc.

Developed is led by Mike Hughes at the Applied Optics Group, School of Physics & Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome. Academic collaborations are welcomed and consultancy is available for potential commercial users, get in touch

Capabilities

Core Functions

  • Supports monochrome and multi-channel (e.g. colour) images.
  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Determine core spacing.
  • Find locations of all cores in bundle.
  • Core removal by Gaussian filtering.
  • Core removal using custom edge filtering.
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple shifted images to improve resolution.

Read the full documentation for more details.

Getting Started

There are three ways to get PyFibreBundle:

  • Download the latest stable release from github and unzip. This will give you all the examples,
    tests and test data.
  • Clone the github repository using git. This will give you the latest updates but more chance of bugs.
  • Install the latest stable release using:
pip install PyFibreBundle 

The third option (using pip install) should find and install all the dependencies. For the other two options
you will need to either manually check you have the requirements installed,
or navigate to the PyFibreBundle folder on your machine and run:

pip install -r requirements.txt

to install the dependencies. You may wish to create a virtual environment using Conda/venv first to avoid conflicts with your existing python setup.

Note that the pip install doesn't include the examples and tests which still need to be downloaded from Github.

Once installed, you can try running the examples.

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Major Release History

  • v1.2.1 Examples are now cross-platform
  • v1.2.0 Support for colour images added
  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Contributions

Cheng Yong Xin, Joseph, who contributed to triangular linear interpolation; Callum McCall who contributed to the super resolution component, Petros Giataganas who developed some of the Matlab code that parts of this library were ported from.

Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.

PyFibreBundle v1.2.0

26 Apr 09:07
e3379a6
Compare
Choose a tag to compare

PyFibreBundle

PyFibreBundle is a Python package for processing of images captured through optical fibre bundles. It is developed mainly by Mike Hughes at the Applied Optics Group, School of Physics and Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome.

Full documentation is available here and a summary of the current functionality is below:

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and holographic endomicroscopy, but there are also potential applications in endoscopy. The package is under active development, with periodic stable releases.

The package is designed to be fast enough for use in imaging GUIs as well as for offline research - frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package is designed to be fast enough for use in imaging GUIs as well as for offline research - frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

Capabilities

Core Functions

  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Gaussian spatial filtering to remove core pattern.
  • Determine core spacing.mdm
  • Define and apply custom edge filter to remove core pattern.
  • Find centers of all cores in bundle (two implementations: regional maxima and Hough transform).
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple fibre bundle images to improve resolution.

Read the full documentation for more details.

Major Release History

  • v1.2.0 Support for colour images added
  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Acknowlegements

Cheng Yong Xin, Joseph, contributed to triangular linear interpolation; Petros Giataganas who developed some of the Matlab code that parts of this library were ported from. Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.

PyFibreBundle v1.1.0

21 Feb 11:43
Compare
Choose a tag to compare

PyFibreBundle

PyFibreBundle is a Python package for processing of images captured through optical fibre bundles. It is developed mainly by Mike Hughes at the Applied Optics Group, School of Physics and Astronomy, University of Kent. Bug reports, contributions and pull requests are welcome.

Full documentation is available here and a summary of the current functionality is below:

The package was originally developed mostly for applications in endoscopic microscopy, including fluorescence endomicroscopy and holographic endomicroscopy, but there are also potential applications in endoscopy. The package is under active development, with periodic stable releases.

The package is designed to be fast enough for use in imaging GUIs as well as for offline research - frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

The package is designed to be fast enough for use in imaging GUIs as well as for offline research - frame rates of over 100 fps can be achieved on mid-level hardware, including core removal and mosaicing. The Numba just-in-time compiler is used to accelerate key portions of code (particularly triangular linear interpolation) and OpenCV is used for fast mosaicing. If the Numba package is not installed then PyFibreBundle falls back on Python interpreted code.

Capabilities

Core Functions

  • Locate bundle in image.
  • Crop image to only show bundle.
  • Mask areas outside of bundle.
  • Gaussian spatial filtering to remove core pattern.
  • Determine core spacing.mdm
  • Define and apply custom edge filter to remove core pattern.
  • Find centers of all cores in bundle (two implementations: regional maxima and Hough transform).
  • Core removal using triangular linear interpolation following Delaunay triangulation.

Mosaicing

  • Detect image to image shift using normalised cross correlation.
  • Insert image into mosaic either using dead-leaf or alpha blending.
  • Expand or scroll mosaic when the edge of the mosaic image is reached.

Super Resolution

  • Combine multiple fibre bundle images to improve resolution.

Read the full documentation for more details.

Major Release History

  • v1.1.0 Super-resolution now implemented in PyBundle Class
  • v1.0.0 Initial Release

Requirements

Required Packages:

  • Numpy
  • OpenCV
  • Pillow
  • Scipy

Optional Packages:

  • Numba (for faster linear interpolation)
  • Matplotlib (to run examples and tests)

Acknowlegements

Cheng Yong Xin, Joseph, contributed to triangular linear interpolation; Petros Giataganas who developed some of the Matlab code that parts of this library were ported from. Funding from EPSRC (Ultrathin fluorescence microscope in a needle, EP/R019274/1), Royal Society (Ultrathin Inline Holographic Microscopy) and University of Kent.