Skip to main content

numpymaxflow: Max-flow/Min-cut in numpy for 2D images and 3D volumes

License CI Build PyPI version

Numpy-based implementation of Max-flow/Min-cut based on the following paper:

  • Boykov, Yuri, and Vladimir Kolmogorov. "An experimental comparison of min-cut/max-flow algorithms for energy minimization in vision." IEEE transactions on pattern analysis and machine intelligence 26.9 (2004): 1124-1137.

If you want same functionality in PyTorch, then consider PyTorch-based implementation

Citation

If you use this code in your research, then please consider citing:

Asad, Muhammad, Lucas Fidon, and Tom Vercauteren. "ECONet: Efficient Convolutional Online Likelihood Network for Scribble-based Interactive Segmentation." Medical Imaging with Deep Learning (MIDL), 2022.

Installation instructions

pip install numpymaxflow

or

# Clone and install from github repo

$ git clone https://github.com/masadcv/numpymaxflow
$ cd numpymaxflow
$ pip install -r requirements.txt
$ python setup.py install

Example outputs

Maxflow2d

./figures/numpymaxflow_maxflow2d.png

Interactive maxflow2d

./figures/numpymaxflow_intmaxflow2d.png

figures/figure_numpymaxflow.png

Example usage

The following demonstrates a simple example showing numpymaxflow usage:

image = np.asarray(Image.open('data/image2d.png').convert('L'), np.float32)
image = np.expand_dims(image, axis=0)

prob = np.asarray(Image.open('data/image2d_prob.png'), np.float32)

lamda = 20.0
sigma = 10.0

post_proc_label = numpymaxflow.maxflow(image, prob, lamda, sigma)

For more usage examples see:

2D and 3D maxflow and interactive maxflow examples: demo_maxflow.py

References

This repository depends on the code for maxflow from latest version of OpenCV, which has been included.

Metadata

Release files for numpymaxflow 0.0.7

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

Source distribution (sdist)

Source distribution for numpymaxflow 0.0.7
File Size Uploaded
numpymaxflow-0.0.7.tar.gz 14.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for numpymaxflow 0.0.7
File
numpymaxflow-0.0.7-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
numpymaxflow-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
numpymaxflow-0.0.7-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
numpymaxflow-0.0.7-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
numpymaxflow-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
numpymaxflow-0.0.7-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
numpymaxflow-0.0.7-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
numpymaxflow-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
numpymaxflow-0.0.7-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
numpymaxflow-0.0.7-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
numpymaxflow-0.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
numpymaxflow-0.0.7-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 407.6 kB

Release files / numpymaxflow-0.0.7.tar.gz

Download URL numpymaxflow-0.0.7.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a1ca70c90d11ffeaa0ef9f173cf9093f8f0d7f3cd697340544dee01f4577fc34
BLAKE2b-256 checksum
How to use checksums
740c3c05aae78b7d153798b436bef624c801b2ced964dfdc8ba8c276c806032c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp312-cp312-win_amd64.whl

Download URL numpymaxflow-0.0.7-cp312-cp312-win_amd64.whl
Size 24.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3584ce3b8b68e21811c152c275e5680887b17cc44bd63dc985c000430a50455a
BLAKE2b-256 checksum
How to use checksums
3dab0c4bed4e74ae76c67d0aa340d4deb5bef14a9d65482a2c105d5c5e4845d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL numpymaxflow-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 51.7 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
63dda31f1905a9a996796313e3453894415a61a5fd278dc30b18874ed0cd5056
BLAKE2b-256 checksum
How to use checksums
8c0be6d82e92cf934ed180959c02fb7a1ff3ca05ca60d1d402727e7f91d70948
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp312-cp312-macosx_11_0_arm64.whl

Download URL numpymaxflow-0.0.7-cp312-cp312-macosx_11_0_arm64.whl
Size 21.8 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
88ed1e5c15e7d63b3dc016d757e0e3df30b5f4396e4d8a327b958918ed0e6a5c
BLAKE2b-256 checksum
How to use checksums
6fcc8c27ac16aa21e435d3c0c4af9856627e99d79248da57524b7fefa5cdd248
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp311-cp311-win_amd64.whl

Download URL numpymaxflow-0.0.7-cp311-cp311-win_amd64.whl
Size 24.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a98cbc96109844105604d20d51b8a4e0f797b54c720129a0bb757bd5dfb041c7
BLAKE2b-256 checksum
How to use checksums
c194a66c47ac240ba7947e6c9e902b483479f203972f06ebc3f22f7d78691a76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL numpymaxflow-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 51.7 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
dc651879e9285abb39f2d22a8beb66f94210dbf5169ebe0a5fcc9fc7f000f828
BLAKE2b-256 checksum
How to use checksums
e8402e5c098b9e85b04860090fb2d95f73775156ce48b84045a459e18608c816
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp311-cp311-macosx_11_0_arm64.whl

Download URL numpymaxflow-0.0.7-cp311-cp311-macosx_11_0_arm64.whl
Size 21.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
887ebe7d1a8473bb94178c5241fa5d11c8e809d90461f2cc8c55dea2b42f5345
BLAKE2b-256 checksum
How to use checksums
51f98b414ea37fff6513ef1a6fabd4211bf03f845b4cfb6d4ee21cf2dd1436e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp310-cp310-win_amd64.whl

Download URL numpymaxflow-0.0.7-cp310-cp310-win_amd64.whl
Size 24.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
92aa54f288682d2761a54d54801428e3e852b7957d3742fd539f2027692fe2c2
BLAKE2b-256 checksum
How to use checksums
e3402c652f5001cb1ded7e75a768e164cc8aee4780ce651137f08ea01b5bd5a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL numpymaxflow-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 51.7 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7ad5ad18608da2a1b8707f861b9fd08413743cd322b267c8cc7eb1899b795505
BLAKE2b-256 checksum
How to use checksums
8ed6dcb526b4af2bd07c847d4e439cc528ca1a579ccda41cf0a1d4dbdb0b23ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp310-cp310-macosx_11_0_arm64.whl

Download URL numpymaxflow-0.0.7-cp310-cp310-macosx_11_0_arm64.whl
Size 21.8 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d10695076d428480a88303b25da591c3be01a787d9862c09b981b53fd16d17fa
BLAKE2b-256 checksum
How to use checksums
67b8e070cbd75fb5572a97c7f0f7aee454810d90d0054afa3d770ae4627f163f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp39-cp39-win_amd64.whl

Download URL numpymaxflow-0.0.7-cp39-cp39-win_amd64.whl
Size 24.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
3275cab94ac887c75452a9c69249abb9b37138fdb101473ad6e582e28afabe14
BLAKE2b-256 checksum
How to use checksums
2c8c9fbadca195219fcc9ad17a32525fcf0cc341b90fa112a2040ea82282b438
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL numpymaxflow-0.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 51.7 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ea23e815561e5d05fa610ac2745946f9501a6251a4cd17923ed892a86c0dec67
BLAKE2b-256 checksum
How to use checksums
8ea655875e227477074bf6c6bdb640b26046e42c40f5a0e2aae9b23e905f2dc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / numpymaxflow-0.0.7-cp39-cp39-macosx_11_0_arm64.whl

Download URL numpymaxflow-0.0.7-cp39-cp39-macosx_11_0_arm64.whl
Size 21.8 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9d1f60096055299259afc12f894f9a331393800a11219aac0d7769f8b9380d1b
BLAKE2b-256 checksum
How to use checksums
723073de4b631696caf563a08e7877bfad0f479466da5947f63a7b0364ba11d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release history Release notifications | RSS feed

This release

0.0.7 This release

13 release files

0.0.6

13 release files

0.0.5

13 release files

0.0.4

13 release files

0.0.3

13 release files

0.0.2

13 release files

0.0.1

9 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