arrayfire / arrayfire/arrayfire-python

may be useful: phase unwrapping

Open
#76 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
422
Forks
63
PR merge metrics
No merged PRs in 30d

Description

Hi,
I implemented a fast and noise-robust phase unwrapping method based on DCTs for AF's python wrapper. You can find the code and info about the corresponding [publication](http://www.mdpi.com/2313-433X/1/1/31) in the attached zip.
The DCT originates from [here](http://fourier.eng.hmc.edu/e161/lectures/dct/node2.html) and is normalized to reproduce results like [Scipy's DCT II and III](https://docs.scipy.org/doc/scipy/reference/generated/scipy.fftpack.dct.html). It interleaves the input array instead of mirror reflecting it in order to keep the FFTs the same size.
The algorithm is viable for not-too-noisy C2 smooth phase maps and can be used stand alone or as first guess for the preconditioned conjugate gradient method. When sparse support comes to AF I'll implement PCG phase unwrapping.
Use this as you see fit.

[phase_unwrapping.zip](https://github.com/arrayfire/arrayfire-python/files/224653/phase_unwrapping.zip)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the attached phase_unwrapping.zip and the repository's Python wrapper to determine how, or whether, the proposed method should be exposed. Read the linked publication and DCT references, then establish the integration scope and tests needed before considering the work complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
hpc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.