image thumbnail

Fast 3D Non Local Means Filtering using Convolutions CPU/GPU

version 1.0.1 (1.34 KB) by Ying Da Wang
Domain Decomposed CPU/GPU implementation of Non Local Means Filtering in 3D using Convolution

16 Downloads

Updated 08 Jun 2021

From GitHub

View license on GitHub

A fast 3D non local means filter cast using the convn function for improved scalability.
Also features a bounding box serialiser to fit volumes into memory.
Usage:
[nlmf] = serialGPUNLMF(domain,locSize,DoS,k,npasses,gpuFlag)
nlmf: the output domain
domain: the input 3D array
locSize: the subdomain size in X,Y,Z. e.g. locsize=256 will partition the domain into subvolumes of 256^
DoS: the degree of smoothing (commonly 0.05 to 0.2)
k: the filter window size as an odd number (3 is minimum, performance penality high for large numbers, recommend 5-7)
npasses: the number of times the filter is applied
gpuFlag: boolean, use gpu or not. (convn is commonly known to be slower on a GPU for cases where locSize is small. At this point, while GPU arrays work with this code, it is seemingly not very fast).
[nlmf] = serialGPUNLMF(domain,256,0.1,5,2,0)

Cite As

Ying Da Wang (2021). Fast 3D Non Local Means Filtering using Convolutions CPU/GPU (https://github.com/yingDaWang-UNSW/nonLocalMeansMatLab3DConvolutions), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2021a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.