• Stars
    star
    10
  • Rank 1,749,856 (Top 36 %)
  • Language
    Julia
  • License
    Other
  • Created over 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Image registration with the QuadDIRECT optimization algorithm

RegisterQD

CIcodecov

RegisterQD performs image registration using the global optimization routine QuadDIRECT. Unlike many other registration packages, this is not "greedy" descent based on an initial guess---it attempts to find the globally-optimal alignment of your images.

To use this package, users must choose between using either the CPU or the GPU. For CPU processing, you must manually load the RegisterMismatch package: using RegisterMismatch, RegisterQD. For GPU processing, you should instead load the RegisterMismatchCuda package: using RegisterMismatchCuda, RegisterQD. Note that loading both mismatch packages in the same session will cause method conflicts. Both mismatch packages are registered in the publicly-available HolyLabRegistry, and users are advised to add that registry. In the current absense of Github resources for GPU code, "gpu_test.jl" should be run on your personal machine as required.

This package exports the following registration functions:

  • qd_translate: register images by shifting one with respect to another (translations only)
  • qd_rigid: register images using rotations and translations
  • qd_affine: register images using arbitrary affine transformations

In general, using more degrees of freedom allows you to solve harder optimization problems, but also makes it harder to find the global optimum. Your best strategy is to permit no more degrees of freedom than needed to solve the problem.

See the help on these functions for details about how to call them.

Another important feature of this package is that it supports images that were sampled anisotropically. This is particularly common for three-dimensional biomedical imaging, where MRI and optical microscopy typically have one axis sampled at lower resolution. A rotation (from a rigid transformation) in physical space needs to be modified before applying it to an anisotropically-sampled image; see arrayscale and getSD for more information.

NOTE: see NEWS.md for information about a recent breaking change.

More Repositories

1

HolyLabRegistry

Julia package registry for the Holy lab at Washington University in St. Louis
Julia
17
star
2

GPCRAnalysis.jl

Routines for analysis of protein structures
Julia
7
star
3

RegisterDeformation.jl

Representation of spatial deformations
Julia
6
star
4

ClusteringBenchmarks.jl

Data sets and metrics to evaluate clustering algorithms
Julia
5
star
5

GaussianRandomVariables.jl

Math (second-order accuracy) with random variables
Julia
5
star
6

BlockRegistration.jl

Deformable image registration via shift-alignment of blocks
Julia
4
star
7

FastScanning.jl

Determine camera/laser timing during fast OCPI acquisitions based on measured hardware responses.
Julia
4
star
8

ZWarpedArrays.jl

An image array type for which each 2D slice can (lazily) undergo a different affine coordinate transformation
Julia
4
star
9

CachedArrays.jl

Arrays that cache elements in leading dimensions
Julia
4
star
10

ImagineHardware.jl

Access hardware information for essential microscope components used in OCPI microscopes: piezo positioners, amplifiers, cameras, etc
Julia
4
star
11

RegisterMismatch.jl

This package is separated from BlockRegistraton.
Julia
3
star
12

InterleavedImages.jl

Lazy interleaving of images (arrays) along a chosen dimension
Julia
2
star
13

RegisterOptimize.jl

This package is separated from BlockRegistraton.
Julia
2
star
14

ExtractPSF.jl

Find point emitters in images and extract point spread functions
Julia
2
star
15

ImagineInterface.jl

Read and write Imagine analog and digital recordings and commands
Julia
2
star
16

EconomicChoice.jl

Utilities for analyzing neuroeconomic choice experiments
Julia
1
star
17

ImaginePlots.jl

Plotting of Imagine's hardware signals (complements ImagineInterface)
Julia
1
star
18

Diffusion.jl

Simulations of diffusion on the disc with boundary conditons
Julia
1
star
19

ImagineProcedures.jl

Link preparation with analysis of Imagine recordings
Julia
1
star
20

FastScanningAndDPI

Directory of code for OCPI fast scanning / DPI publication
1
star
21

EcoTrialStructure.jl

Data import for experiments on neuroeconomic decision-making
Julia
1
star
22

RFFT.jl

In-place real FFTs for Julia
Julia
1
star
23

ImageInterpLast.jl

Lazy interpolation of images along the last dimension (usually time)
Julia
1
star
24

RegisterWorkerShell.jl

This package is separated from BlockRegistratonScheduler.
Julia
1
star
25

StitchDPI.jl

Align and stitch pairs of images acquired with a split field of view
Julia
1
star
26

Imagine

A graphical interface for recording with OCPI microscopes.
C++
1
star
27

RegisterPenalty.jl

This package is separated from BlockRegistraton.
Julia
1
star
28

BlockRegistrationScheduler.jl

Multi-core image registration scheduler
Julia
1
star
29

WarpedImageSeries.jl

Lazy warping of a series (usually timeseries) of images
Julia
1
star
30

RegisterCore.jl

Image registration (low-level types and utilities)
Julia
1
star
31

Imagine.jl

Work-in-progress translation of Imagine to Julia
Julia
1
star
32

CachedInterpolations.jl

CachedInterpolations implements a performance enhancement for quadratic interpolation of a large multidimensional array. This package is separated from BlockRegistration
Julia
1
star