Skip to main content

Direct Poisson Denoising by N-Dimensional Block-Matching and Collaborative Filtering

BMND is an algorithm for denoising of Poisson corrupted n-dimensional data.

This implementation is based on the paper

Christof Duhme, Lars Schiefelbein, Florian Büther and Xiaoyi Jiang,
''BMND: Direct Poisson Denoising by N-Dimensional Block-Matching and Collaborative Filtering'',
In: arXiv preprint arxiv:DOI, 2026.

The basic algorithms we build upon are BM3D/BM4D, introduced and developed in these publications:

Kostadin Dabov, Alessandro Foi, Vladimir Katkovnik and Karen Egiazarian,
''Image Denoising by Sparse 3-D Transform-Domain Collaborative Filtering'',
In: IEEE Transactions on Image Processing, vol. 16, no. 8, pp. 2080-2095, 2007.
DOI: 10.1109/TIP.2007.901238.

Matteo Maggioni, Vladimir Katkovnik, Karen Egiazarian and Alessandro Foi,
''A Nonlocal Transform-Domain Filter for Volumetric Data Denoising and Reconstruction'',
In: IEEE Transactions on Image Processing, vol. 22, no. 1, pp. 119-133, 2013.
DOI: 10.1109/TIP.2012.2210725.

Ymir Mäkinen, Lucio Azzari and Alessandro Foi,
''Collaborative Filtering of Correlated Noise: Exact Transform-Domain Variance for Improved Shrinkage and Patch Matching'',
In: IEEE Transactions on Image Processing, vol. 29, pp. 8339-8354, 2020.
DOI: 10.1109/TIP.2020.3014721.

Usage

import numpy as np
from bmnd import BM3DProfile, NoiseModel, bmnd

# Generate a synthetic 2D image with Poisson noise.
image = np.full((64, 64), 5.0, dtype=np.float32)
image[16:48, 16:48] = 20.0
noisy = np.random.default_rng(0).poisson(image).astype(np.float32)

profile = BM3DProfile(noise_model=NoiseModel.POISSON)
denoised = bmnd(noisy, profile)

For your own data, replace noisy with a non-negative NumPy array in count units, without normalizing it to [0, 1]. No noise standard deviation is needed for Poisson denoising. The output has the same shape as the input.

We provide BM3DProfile for 2D images and BM4DProfile for 3D volumes to match the original algorithms defaults.

Metadata

Release files for bmnd 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bmnd 0.3.0
File Size Uploaded
bmnd-0.3.0.tar.gz 106.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bmnd 0.3.0
File Interpreter ABI Platform
bmnd-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 190.9 kB

Release files / bmnd-0.3.0.tar.gz

Download URL bmnd-0.3.0.tar.gz
Size 106.9 kB
Tags Source
SHA-256 checksum
How to use checksums
bc0aebd955353a89d47aabb039e67c96e9d3fe899231ed1acbb49ae36b7c89fe
BLAKE2b-256 checksum
How to use checksums
d312b560b06a7414639a41a4360fcb6a687949ff51ee68f5150dd9be85268e93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release files / bmnd-0.3.0-py3-none-any.whl

Download URL bmnd-0.3.0-py3-none-any.whl
Size 83.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b2d899b8b6f02224cc49ef411fe8200745abcd340d91d5f88188b73a42795a6a
BLAKE2b-256 checksum
How to use checksums
3fdd83c51f3a23edc552eec0e4e4599a697f6e68747d21cae8677d7fd6e63687
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page