Skip to main content

Graph Cut based 3D segmentation with editor

Project description

PYSEG_BASE

About
-----

Segmentation tools based on the graph cut algorithm. You can
see video to get an idea.

http://youtu.be/bFSyY4jyMHw

please cite:

@INPROCEEDINGS{jirik2013,
author = {Jirik, M. and Lukes, V. and Svobodova, M. and Zelezny, M.},
title = {Image Segmentation in Medical Imaging via Graph-Cuts.},
year = {2013},
journal = {11th International Conference on Pattern Recognition and Image Analysis: New Information Technologies (PRIA-11-2013). Samara, Conference Proceedings },
url = {http://www.kky.zcu.cz/en/publications/JirikMmjirik_2013_ImageSegmentationin},
}


Links
-----

https://github.com/mjirik/pyseg_base

Authors
-------

Miroslav Jirik
Vladimir Lukes

License
-------

New BSD License, see the LICENSE file.

Install
-------

pip install pyseg_base

See INSTALL file for more information

Run
---

Create output.mat file:

python pysegbase/dcmreaddata.py -i directoryWithDicomFiles --degrad 4

See data:

python pysegbase/seed_editor_qt.py -f output.mat

Make graph_cut:

python pysegbase/pycut.py -i output.mat


Use is as a library:

import numpy as np
import pysegbase.pycut as pspc

data = np.random.rand(30, 30, 30)
data[10:20, 5:15, 3:13] += 1
data = data * 30
data = data.astype(np.int16)
igc = pspc.ImageGraphCut(data, voxelsize=[1, 1, 1])
seeds = igc.interactivity()

![pysegbase_screenshot](http://147.228.240.61/queetech/www/pysegbase_screenshot0.png)


More complex example without interactivity
---

import numpy as np
import pysegbase.pycut as pspc
import matplotlib.pyplot as plt

# create data
data = np.random.rand(30, 30, 30)
data[10:20, 5:15, 3:13] += 1
data = data * 30
data = data.astype(np.int16)

# Make seeds
seeds = np.zeros([30,30,30])
seeds[13:17, 7:10, 5:11] = 1
seeds[0:5:, 0:10, 0:11] = 2

# Run
igc = pspc.ImageGraphCut(data, voxelsize=[1, 1, 1])
igc.set_seeds(seeds)
igc.run()

# Show results
colormap = plt.cm.get_cmap('brg')
colormap._init()
colormap._lut[:1:,3]=0

plt.imshow(data[:, :, 10], cmap='gray')
plt.contour(igc.segmentation[:, :,10], levels=[0.5])
plt.imshow(igc.seeds[:, :, 10], cmap=colormap, interpolation='none')
plt.show()


![example_img](https://raw.githubusercontent.com/mjirik/pyseg_base/master/imgs/example_result.png)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysegbase-1.2.8.tar.gz (52.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page