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)
| File | Size | Uploaded | |
|---|---|---|---|
| bmnd-0.3.0.tar.gz | 106.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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