pnextract 0.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pnextract-0.0.0/MANIFEST.in +2 -0
- pnextract-0.0.0/PKG-INFO +29 -0
- pnextract-0.0.0/README.md +13 -0
- pnextract-0.0.0/pnextract/.git +1 -0
- pnextract-0.0.0/pnextract/.github/workflows/make_and_test.yml +27 -0
- pnextract-0.0.0/pnextract/.gitignore +60 -0
- pnextract-0.0.0/pnextract/Makefile +1 -0
- pnextract-0.0.0/pnextract/README.md +41 -0
- pnextract-0.0.0/pnextract/bin.7z +0 -0
- pnextract-0.0.0/pnextract/doc/Image.mhd +76 -0
- pnextract-0.0.0/pnextract/doc/libvoxel_commands.md +248 -0
- pnextract-0.0.0/pnextract/doc/pnextract_guide.pdf +0 -0
- pnextract-0.0.0/pnextract/src/Makefile +8 -0
- pnextract-0.0.0/pnextract/src/include/InputFile.h +384 -0
- pnextract-0.0.0/pnextract/src/include/README.md +84 -0
- pnextract-0.0.0/pnextract/src/include/globals.h +104 -0
- pnextract-0.0.0/pnextract/src/include/profilers.h +93 -0
- pnextract-0.0.0/pnextract/src/include/typses.h +849 -0
- pnextract-0.0.0/pnextract/src/libvoxel/Makefile +21 -0
- pnextract-0.0.0/pnextract/src/libvoxel/README.md +46 -0
- pnextract-0.0.0/pnextract/src/libvoxel/shapeToVoxel.h +254 -0
- pnextract-0.0.0/pnextract/src/libvoxel/test.py +28 -0
- pnextract-0.0.0/pnextract/src/libvoxel/voxelEndian.h +23 -0
- pnextract-0.0.0/pnextract/src/libvoxel/voxelImage.cpp +869 -0
- pnextract-0.0.0/pnextract/src/libvoxel/voxelImage.h +343 -0
- pnextract-0.0.0/pnextract/src/libvoxel/voxelImageI.h +1953 -0
- pnextract-0.0.0/pnextract/src/libvoxel/voxelImageProcess.cpp +89 -0
- pnextract-0.0.0/pnextract/src/libvoxel/voxelRegions.h +193 -0
- pnextract-0.0.0/pnextract/src/libvoxel/voxelTiff.h +334 -0
- pnextract-0.0.0/pnextract/src/pnm/Makefile +9 -0
- pnextract-0.0.0/pnextract/src/pnm/README.md +83 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/ElementGNE.h +268 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/Makefile +31 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/README.md +78 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/blockNet.cpp +581 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/blockNet.h +135 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/blockNet_vxlManip.cpp +569 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/blockNet_write_cnm.cpp +228 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/inputData.h +297 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/medialRadius.cpp +365 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/medialSurf.cpp +614 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/medialSurf.h +151 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/nextract.cpp +172 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/test.py +33 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/writers.h +51 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/writers_vtk.cpp +595 -0
- pnextract-0.0.0/pnextract/src/pnm/pnextract/writers_vxl.cpp +198 -0
- pnextract-0.0.0/pnextract/src/script/Makefile.in +478 -0
- pnextract-0.0.0/pnextract/src/script/Makefile.msRoot +79 -0
- pnextract-0.0.0/pnextract/src/script/README.md +136 -0
- pnextract-0.0.0/pnextract/src/script/__init__.py +3 -0
- pnextract-0.0.0/pnextract/src/script/bashrc +37 -0
- pnextract-0.0.0/pnextract/src/script/initbash +315 -0
- pnextract-0.0.0/pnextract/src/script/makefile.3rd +73 -0
- pnextract-0.0.0/pnextract/src/script/msrc.py +121 -0
- pnextract-0.0.0/pnextract/src/script/testApp +54 -0
- pnextract-0.0.0/pnextract/src/script/toolchain.exe.txt +21 -0
- pnextract-0.0.0/pnextract/src/script/toolchain.icc.txt +20 -0
- pnextract-0.0.0/pnextract/src/script/toolchain.txt +17 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/CMakeLists.txt +748 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/COMMITTERS +19 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/COPYRIGHT +21 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/ChangeLog +9652 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/HOWTO-RELEASE +146 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/HOWTO-SECURITY-RELEASE +19 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/Makefile.am +90 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/Makefile.vc +57 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/README.md +77 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/RELEASE-DATE +1 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/SConstruct +169 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/TODO +10 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/VERSION +1 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/autogen.sh +8 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/configure.ac +1208 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/configure.com +1356 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/CMakeLists.txt +169 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/Makefile.am +156 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/Makefile.lcc +128 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/Makefile.vc +100 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/SConstruct +71 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/libtiff.def +175 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/libtiff.map +4 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/libtiffxx.map +4 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/mkg3states.c +452 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/mkspans.c +80 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/t4.h +290 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_aux.c +419 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_close.c +138 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_codec.c +171 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_color.c +307 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_compress.c +302 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_config.h-vms +46 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_config.h.cmake.in +231 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_config.vc.h +137 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_config.wince.h +69 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dir.c +1785 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dir.h +315 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dirinfo.c +1081 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dirread.c +6438 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dirwrite.c +3266 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dumpmode.c +141 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_error.c +86 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_extension.c +116 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_fax3.c +1646 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_fax3.h +538 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_fax3sm.c +1260 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_flush.c +174 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_getimage.c +3058 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_jbig.c +232 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_jpeg.c +2596 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_jpeg_12.c +69 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_luv.c +1764 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_lzma.c +500 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_lzw.c +1232 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_next.c +187 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_ojpeg.c +2607 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_open.c +741 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_packbits.c +309 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_pixarlog.c +1477 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_predict.c +879 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_predict.h +81 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_print.c +718 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_read.c +1647 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_stream.cxx +434 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_strip.c +359 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_swab.c +310 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_thunder.c +206 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_tile.c +299 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_unix.c +384 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_version.c +39 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_vms.c +609 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_warning.c +87 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_webp.c +695 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_win32.c +435 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_wince.c +288 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_write.c +846 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_zip.c +456 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_zstd.c +440 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiff.h +695 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.h-vms +90 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.h.cmake.in +121 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.h.in +118 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.vc.h +152 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.wince.h +110 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffio.h +568 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffio.hxx +48 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffiop.h +474 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffvers.h +9 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffvers.h.in +9 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/uvcode.h +180 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff-4.pc.in +11 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/nmake.opt +214 -0
- pnextract-0.0.0/pnextract/thirdparty/libtiff/tiff.spec +67 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/.gitignore +26 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/CMakeLists.txt +250 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/INDEX +68 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/Makefile +5 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/Makefile.in +410 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/README +115 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/README.md +14 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/adler32.c +186 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/compress.c +86 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/contrib/iostream3/README +35 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/contrib/iostream3/TODO +17 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/contrib/iostream3/test.cc +50 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/contrib/iostream3/zfstream.h +944 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/crc32.c +442 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/crc32.h +441 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/deflate.c +2163 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/deflate.h +349 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/gzclose.c +25 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/gzguts.h +218 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/gzlib.c +637 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/gzread.c +654 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/gzwrite.c +665 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/infback.c +640 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/inffast.c +323 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/inffast.h +11 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/inffixed.h +94 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/inflate.c +1561 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/inflate.h +125 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/inftrees.c +304 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/inftrees.h +62 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/treebuild.xml +116 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/trees.c +1203 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/trees.h +128 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/uncompr.c +93 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/win32/DLL_FAQ.txt +397 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/win32/Makefile.bor +110 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/win32/Makefile.gcc +182 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/win32/Makefile.msc +163 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/win32/README-WIN32.txt +103 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/win32/VisualC.txt +3 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/win32/zlib.def +94 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/win32/zlib1.rc +40 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zconf.h.cmakein +536 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zconf.h.in +534 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.3 +149 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.h +1912 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.map +94 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.pc.cmakein +13 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.pc.in +13 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zlib2ansi +152 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zutil.c +325 -0
- pnextract-0.0.0/pnextract/thirdparty/zlib/zutil.h +271 -0
- pnextract-0.0.0/pyproject.toml +30 -0
- pnextract-0.0.0/setup.cfg +4 -0
- pnextract-0.0.0/setup.py +32 -0
- pnextract-0.0.0/src/pnextract/__init__.py +0 -0
- pnextract-0.0.0/src/pnextract/__main__.py +20 -0
- pnextract-0.0.0/src/pnextract.egg-info/PKG-INFO +29 -0
- pnextract-0.0.0/src/pnextract.egg-info/SOURCES.txt +213 -0
- pnextract-0.0.0/src/pnextract.egg-info/dependency_links.txt +1 -0
- pnextract-0.0.0/src/pnextract.egg-info/entry_points.txt +3 -0
- pnextract-0.0.0/src/pnextract.egg-info/top_level.txt +1 -0
pnextract-0.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pnextract
|
|
3
|
+
Version: 0.0.0
|
|
4
|
+
Summary: Pore network extraction from micro-CT images of porous media
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Project-URL: Repository, https://github.com/lmmp-puc-rio/pnextract-pypi
|
|
7
|
+
Project-URL: Homepage, https://github.com/ImperialCollegeLondon/pnextract
|
|
8
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
9
|
+
Classifier: Environment :: Console
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
12
|
+
Classifier: Programming Language :: C++
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: Image Processing
|
|
14
|
+
Requires-Python: >=3.8
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
|
|
17
|
+
# `pnextract` PyPI package
|
|
18
|
+
|
|
19
|
+
[](https://github.com/lmmp-puc-rio/pnextract-pypi/actions/workflows/build.yml)
|
|
20
|
+
|
|
21
|
+
This repository contains the source code for the `pnextract` PyPI package, which provides a convenient method for installing the [`pnextract`](https://github.com/ImperialCollegeLondon/pnextract) software.
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
You can install `pnextract` using pip just as if it were a any Python package:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pip install pnextract
|
|
29
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# `pnextract` PyPI package
|
|
2
|
+
|
|
3
|
+
[](https://github.com/lmmp-puc-rio/pnextract-pypi/actions/workflows/build.yml)
|
|
4
|
+
|
|
5
|
+
This repository contains the source code for the `pnextract` PyPI package, which provides a convenient method for installing the [`pnextract`](https://github.com/ImperialCollegeLondon/pnextract) software.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
You can install `pnextract` using pip just as if it were a any Python package:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pip install pnextract
|
|
13
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gitdir: ../.git/modules/pnextract
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: make and test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ master ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ master ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- name: Cache lib
|
|
17
|
+
uses: actions/cache@v4
|
|
18
|
+
with:
|
|
19
|
+
path: |
|
|
20
|
+
~/lib
|
|
21
|
+
key: ${{ runner.os }}-lib
|
|
22
|
+
|
|
23
|
+
- name: make
|
|
24
|
+
run: make -j
|
|
25
|
+
|
|
26
|
+
- name: test
|
|
27
|
+
run: make test
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
Make/*/
|
|
3
|
+
bin/
|
|
4
|
+
build/*
|
|
5
|
+
include/
|
|
6
|
+
lib/
|
|
7
|
+
share/
|
|
8
|
+
test/
|
|
9
|
+
**/bu
|
|
10
|
+
**/BU
|
|
11
|
+
*.log
|
|
12
|
+
log.*
|
|
13
|
+
*-.cpp
|
|
14
|
+
**/__pycache__
|
|
15
|
+
*.pyc
|
|
16
|
+
**/*.pyc
|
|
17
|
+
*-
|
|
18
|
+
**/lnInclude/
|
|
19
|
+
**/Make/linux*/
|
|
20
|
+
thirdparty/**/bin/
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# Latex
|
|
24
|
+
*.aux
|
|
25
|
+
*.toc
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# Prerequisites
|
|
29
|
+
*.d
|
|
30
|
+
*.dep
|
|
31
|
+
|
|
32
|
+
# Compiled Object files
|
|
33
|
+
*.slo
|
|
34
|
+
*.lo
|
|
35
|
+
*.o
|
|
36
|
+
*.obj
|
|
37
|
+
|
|
38
|
+
# Precompiled Headers
|
|
39
|
+
*.gch
|
|
40
|
+
*.pch
|
|
41
|
+
|
|
42
|
+
# Compiled Dynamic libraries
|
|
43
|
+
*.so
|
|
44
|
+
*.dylib
|
|
45
|
+
*.dll
|
|
46
|
+
|
|
47
|
+
# Fortran module files
|
|
48
|
+
*.mod
|
|
49
|
+
*.smod
|
|
50
|
+
|
|
51
|
+
# Compiled Static libraries
|
|
52
|
+
*.lai
|
|
53
|
+
*.la
|
|
54
|
+
*.a
|
|
55
|
+
*.lib
|
|
56
|
+
|
|
57
|
+
# Executables
|
|
58
|
+
*.exe
|
|
59
|
+
*.out
|
|
60
|
+
*.app
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
include src/script/Makefile.msRoot
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
## pnextract - pore-network extraction
|
|
8
|
+
**pnextract** is an open-source software written in C++ that extracts pore networks from images or statistical reconstructions of porous materials. These pore networks preserve the topology of the pore space and also calculate other parameters, such as the pore size distribution, interfacial area, and volume needed for analysis and simulations. Network extraction is normally the first step for further analysis and modelling, to predict flow and transport processes in porous materials, and to analyse three-dimensional images. This code provides essential network files for pore network flow model ([**pnflow**](https://github.com/aliraeini/pnflow)).
|
|
9
|
+
|
|
10
|
+
**Note: this repository is same as [pnflow repository](https://github.com/aliraeini/pnflow) but without the pnflow code.**
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
----------------------------------------------------------------
|
|
14
|
+
|
|
15
|
+
## See [src/pnm](src/pnm) and [doc](doc) for details on pnextract code.
|
|
16
|
+
|
|
17
|
+
## See [src/script/README.md](src/script/README.md) for compile/build instructions.
|
|
18
|
+
|
|
19
|
+
See also README files of other modules which are located in their own directories:
|
|
20
|
+
[src/libvoxel](src/libvoxel), [src/script](src/script) and in [thirdparty](thirdparty).
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
----------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
Download the [bin.7z](bin.7z) for pre-compiled Windows executables.
|
|
26
|
+
|
|
27
|
+
### Contact and References ###
|
|
28
|
+
|
|
29
|
+
For contacts and references please see:
|
|
30
|
+
https://www.imperial.ac.uk/earth-science/research/research-groups/pore-scale-modelling
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
Alternatively, contact Sajjad Foroughi:
|
|
34
|
+
- Email: s.foroughi@imperial.ac.uk
|
|
35
|
+
- Additional Email: foroughi.sajad@gmail.com
|
|
36
|
+
|
|
37
|
+
--
|
|
38
|
+
|
|
39
|
+
For more in-depth understanding of the pnextract code, users can refer to following papers related to this topic, which may provide additional insights:
|
|
40
|
+
- [Pore-network extraction from micro-computerized-tomography images](https://journals.aps.org/pre/abstract/10.1103/PhysRevE.80.036307)
|
|
41
|
+
- [Generalized network modeling: Network extraction as a coarse-scale discretization of the void space of porous media](https://journals.aps.org/pre/abstract/10.1103/PhysRevE.96.013312)
|
|
Binary file
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
ObjectType = Image
|
|
2
|
+
NDims = 3
|
|
3
|
+
ElementType = MET_UCHAR
|
|
4
|
+
ElementByteOrderMSB = False
|
|
5
|
+
|
|
6
|
+
DimSize = 1000 1000 1000
|
|
7
|
+
ElementSize = 1.6 1.6 1.6
|
|
8
|
+
Offset = 0 0 0
|
|
9
|
+
|
|
10
|
+
ElementDataFile = Image.raw.gz
|
|
11
|
+
|
|
12
|
+
//HeaderSize = 0
|
|
13
|
+
//OutputFormat = .raw.gz
|
|
14
|
+
|
|
15
|
+
//!__________ optional image processing (ordered) commands ____________
|
|
16
|
+
//!_________________ remove the '//' to activate _____________________
|
|
17
|
+
|
|
18
|
+
//! crop image [ Nxyz_begin Nxyz_end )
|
|
19
|
+
//crop 0 0 0 300 300 300
|
|
20
|
+
|
|
21
|
+
//! flip x direction with y or z
|
|
22
|
+
//direction z
|
|
23
|
+
|
|
24
|
+
//! manipulate voxel values: range [start end] -> value
|
|
25
|
+
//! replaceRange start end value
|
|
26
|
+
//replaceRange 0 127 0
|
|
27
|
+
//replaceRange 128 255 1
|
|
28
|
+
|
|
29
|
+
//! threshold image: [range] -> 0 (void-space), rest->1 (solid)
|
|
30
|
+
//threshold 0 128
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
//! ### Format Specifications:
|
|
37
|
+
//! All keyword data should be provided in a single line.
|
|
38
|
+
//!
|
|
39
|
+
//! The first unrecognised keyword together with the rest of the file will
|
|
40
|
+
//! be ignored.
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
//! DNS/PNM codes can read .am, .tif, .raw.gz, .raw and .txt/.dat files.
|
|
44
|
+
//! The format is detected from the image suffix in ElementDataFile keyword.
|
|
45
|
+
|
|
46
|
+
//! When the image format is .raw or .raw.gz, this file can be opened in
|
|
47
|
+
//! ImageJ/Fiji or Paraview to load the image. For tif images, you should
|
|
48
|
+
//! open the .tif file directly.
|
|
49
|
+
|
|
50
|
+
//! When using .raw.gz, .raw and the image is not UChar and not written
|
|
51
|
+
//! in little-endian, add the following keyword before the ElementDataFile
|
|
52
|
+
//! (voxelImage ignotres this):
|
|
53
|
+
//! ElementByteOrderMSB = True
|
|
54
|
+
|
|
55
|
+
//! When using .raw.gz image files, for compatibility with Fiji/Paraview, add
|
|
56
|
+
//! the following keyword before the ElementDataFile:
|
|
57
|
+
//! CompressedData = True
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
//! = is used only in the standard mhd keywords (the first 10 lines) but
|
|
61
|
+
//! not in the DNS/PNM commands and keywords.
|
|
62
|
+
|
|
63
|
+
//! When the image is in .tif format, all the keywords can be dropped, but
|
|
64
|
+
//! to ensure the voxel-size is correct the keywords ElementSize and
|
|
65
|
+
//! Offset can be provided to override those read from .tif tags.
|
|
66
|
+
//! In .tif format, the keyword DimSize is redundant and hence ignored.
|
|
67
|
+
|
|
68
|
+
//! lines BEGINING with "#" and "//" are considered as comments and skipped,
|
|
69
|
+
//! but no comment is allowed before the keyword ElementDataFile.
|
|
70
|
+
|
|
71
|
+
//! A syntax highlighting hack: associate the .mhd suffix with C++:
|
|
72
|
+
//! In geany in "Tools -> Configuration files -> filetype_extensions.conf"
|
|
73
|
+
//! or by menu "Document -> Set Filetype -> Programming Languages -> C++".
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# libvoxel commands
|
|
2
|
+
|
|
3
|
+
The following are commands will be processed by libvoxel when reading images. They shall be given in after ElementDataFile keyword in the .mhd files to avoid incompatibility with Fiji-is-ImageJ and Paraview. Furthermore, any additional application specific keywords shall be provided after these since libvoxel stops processing the commands once it encounters any unrecognised keyword (i.e. other than comments and keywords below).
|
|
4
|
+
|
|
5
|
+
The list of supported commands by libvxel can be obtained from voxelImageProcess app by running:
|
|
6
|
+
|
|
7
|
+
voxelImageProcess ?
|
|
8
|
+
|
|
9
|
+
Specific commands' usage can be shown by running:
|
|
10
|
+
|
|
11
|
+
voxelImageProcess ? command
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Note these are in additional to the mhd header data provided in the top of .mhd files:
|
|
15
|
+
|
|
16
|
+
ObjectType = Image
|
|
17
|
+
NDims = 3
|
|
18
|
+
ElementType = MET_UCHAR
|
|
19
|
+
ElementByteOrderMSB = False
|
|
20
|
+
|
|
21
|
+
DimSize = 1000 1000 1000
|
|
22
|
+
ElementSize = 1.6 1.6 1.6
|
|
23
|
+
Offset = 0 0 0
|
|
24
|
+
|
|
25
|
+
ElementDataFile = Image.raw.gz
|
|
26
|
+
|
|
27
|
+
//HeaderSize = 0
|
|
28
|
+
//CompressedData = True
|
|
29
|
+
//OutputFormat = .raw.gz // alias for DefaultImageFormat, not part of MHD specification
|
|
30
|
+
|
|
31
|
+
Additional MHD rules:
|
|
32
|
+
|
|
33
|
+
- The order of the first 6 keywords should not be changed for compatibility with third-party software (ImageJ and Paraview).
|
|
34
|
+
- Use `#` or `//` for commenting and deactivating commads/lines.
|
|
35
|
+
- Each keyword and its data should be given in a single line. This is because libvoxel currently does not rely on the more user friendly InputFile.h syntax, used by pnextract and pnflow ... codes.
|
|
36
|
+
- Libvoxel detects only basic data/keywords provided in Image.am files and Image.tif files, without the need for a .mhd file. However, the commands bellow can only be provided in a separate .mhd (text) file, in which the name of Image.tif or Image.am file is given as an argument to ElementDataFile keyword (see above).
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
------------------------------------
|
|
40
|
+
|
|
41
|
+
## Basic commands
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
**info**:
|
|
45
|
+
Show image information/stats
|
|
46
|
+
|
|
47
|
+
info
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
**pore**:
|
|
51
|
+
Pore/selectPore thresholds image and sets the given range to zero (pore voxel values)
|
|
52
|
+
|
|
53
|
+
pore 0 150
|
|
54
|
+
|
|
55
|
+
**threshold**:
|
|
56
|
+
Same as selectPore
|
|
57
|
+
|
|
58
|
+
threshold 0 150
|
|
59
|
+
|
|
60
|
+
**threshold101**:
|
|
61
|
+
Same as selectPore, 101 means inside the range will be set to zero and outside to 1
|
|
62
|
+
|
|
63
|
+
threshold101 0 150
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
**direction**:
|
|
67
|
+
Re-interprets the image direction so that the flow direction becomes in the given direction
|
|
68
|
+
|
|
69
|
+
direction z
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
**crop**:
|
|
73
|
+
Crops the image, from a lower I, J, K and before an upper bound I J K values
|
|
74
|
+
|
|
75
|
+
crop 100 100 0 900 900 1000
|
|
76
|
+
|
|
77
|
+
**resampleMean**:
|
|
78
|
+
Resamples the image while setting the new values to the mean of original voxel values in case of refining (ratio<1)
|
|
79
|
+
|
|
80
|
+
resampleMean 2
|
|
81
|
+
|
|
82
|
+
**resampleMax**:
|
|
83
|
+
Resample the image while setting the new values to the max of original voxels in case of refining (ratio<1)
|
|
84
|
+
|
|
85
|
+
resampleMax 2
|
|
86
|
+
|
|
87
|
+
**resampleMode**:
|
|
88
|
+
Resample the image while setting the new values to the mode of original voxels in case of refining (ratio<1)
|
|
89
|
+
|
|
90
|
+
resampleMode 2
|
|
91
|
+
|
|
92
|
+
**resliceZ**:
|
|
93
|
+
Same as resample but only in z direction (for correcting CT images, limited)
|
|
94
|
+
|
|
95
|
+
resliceZ
|
|
96
|
+
|
|
97
|
+
**replaceRange**:
|
|
98
|
+
Sets range [min max] to a given value
|
|
99
|
+
|
|
100
|
+
replaceRange 200 255 1
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
**keepLargest0**:
|
|
104
|
+
Keeps the largest connected region with value of 0, sets the rest to maxT-1 (=254 for 8bit images).
|
|
105
|
+
Use this to compute effective porosity.
|
|
106
|
+
|
|
107
|
+
**write**:
|
|
108
|
+
Write the image into file
|
|
109
|
+
|
|
110
|
+
write image_copy.raw
|
|
111
|
+
write image_copy.am
|
|
112
|
+
write image_copy.mhd
|
|
113
|
+
|
|
114
|
+
**write8bit**:
|
|
115
|
+
Write the image as unsigned char
|
|
116
|
+
|
|
117
|
+
write8bit image_8bit.raw
|
|
118
|
+
write8bit image_8bit.am
|
|
119
|
+
write8bit image_8bit.mhd
|
|
120
|
+
|
|
121
|
+
**modeFilter**:
|
|
122
|
+
Apply few iterations (first argument) of mode filter, reject mode if frequency less than second argument
|
|
123
|
+
|
|
124
|
+
modeFilter 1 2 // 1 iterations, 2 for the threshold mode frequency to change a voxel
|
|
125
|
+
|
|
126
|
+
**medianFilter**:
|
|
127
|
+
Apply a median filter
|
|
128
|
+
|
|
129
|
+
medianFilter 1
|
|
130
|
+
|
|
131
|
+
**medianX**:
|
|
132
|
+
Apply few iterations of median filter only in x direction ( can help reduce file size of grey images when compressed)
|
|
133
|
+
|
|
134
|
+
medianX 1
|
|
135
|
+
|
|
136
|
+
**FaceMedian06**:
|
|
137
|
+
Median filter over 6 closest adjacent voxels
|
|
138
|
+
|
|
139
|
+
FaceMedian06 1
|
|
140
|
+
|
|
141
|
+
**PointMedian032**:
|
|
142
|
+
Median filter over 32 closest adjacent voxels
|
|
143
|
+
|
|
144
|
+
PointMedian032 1 //<- one iterations
|
|
145
|
+
|
|
146
|
+
**mapFrom**:
|
|
147
|
+
Assigns voxel values from another image based on their physical location (X0+ijk*dX). Image offsets should be assigned correctly.
|
|
148
|
+
|
|
149
|
+
mapFrom "image_name.mhd" ;
|
|
150
|
+
mapFrom "image_name.mhd" 0 65536 0 0 ; //<- \[vv_min vv_max\] increase-factor shift
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
**operation**:
|
|
154
|
+
Apply a mathematical unary (!, &, ~) or binary (+, -, \*, b, e). Here b stands for begin or min and e stands for maximum or end for voxel values. The second argument shall be empty in case of unary operations, or a number or an image file name in case of binary operators.
|
|
155
|
+
|
|
156
|
+
operation + 10 //<- add 10 to voxel values
|
|
157
|
+
operation + image2.mhd -50 //<- -50 is a shift value to avoid overfow/capping
|
|
158
|
+
operation b 1 //<- set voxel values below <10 to 10
|
|
159
|
+
operation e 250 //<- set voxel values above 250> to 250
|
|
160
|
+
|
|
161
|
+
**operat**:
|
|
162
|
+
operat is an alias for `operation` keyword
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
------------------------------------
|
|
166
|
+
|
|
167
|
+
## Keywords used for tests/synthetic image generation
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
**read**:
|
|
171
|
+
Read an image, overwriting any previously loaded data
|
|
172
|
+
|
|
173
|
+
read input_image.tif
|
|
174
|
+
read input_image.am
|
|
175
|
+
read input_image.mhd
|
|
176
|
+
|
|
177
|
+
**reset**:
|
|
178
|
+
Reset N ( image size) dx (voxel size) or X0 (offset/origin)
|
|
179
|
+
|
|
180
|
+
reset N 100 100 100
|
|
181
|
+
reset dx 3e-6 3e-6 3e-6
|
|
182
|
+
reset X0 0. 0. 0.
|
|
183
|
+
reset Nd0 100 100 100 3e-6 3e-6 3e-6 0. 0. 0.
|
|
184
|
+
reset dx 3e-6
|
|
185
|
+
|
|
186
|
+
**Paint**:
|
|
187
|
+
Paint a 3D shape into the image
|
|
188
|
+
|
|
189
|
+
Paint s 30 30 30 10 //<- shape-type(sphere) Centre:Xc(30,30,30) and radius R=10
|
|
190
|
+
|
|
191
|
+
**PaintAdd**:
|
|
192
|
+
Paints over a 3D shape on the image, increasing the previous voxel values (brightness), otherwise same as Paint
|
|
193
|
+
|
|
194
|
+
PaintAdd s 30 30 30 10 //<- shape-type(sphere) Centre:Xc(30,30,30) and radius R=10
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
------------------------------------
|
|
198
|
+
|
|
199
|
+
## Obsolete keywords
|
|
200
|
+
|
|
201
|
+
The following keywords fate in further libvoxel versions shall be reviewed
|
|
202
|
+
|
|
203
|
+
**cropD**:
|
|
204
|
+
Same as crop, D is a reminder for \[\) meaning beginning of range is included but end is not
|
|
205
|
+
|
|
206
|
+
cropD 100 100 0 900 900 1000
|
|
207
|
+
|
|
208
|
+
**rescale**:
|
|
209
|
+
Adjust voxel values brightness /contrast (redundant, use `operat` keyword instead)
|
|
210
|
+
|
|
211
|
+
rescale 0 10000
|
|
212
|
+
|
|
213
|
+
**Offset**:
|
|
214
|
+
Change the image origin
|
|
215
|
+
|
|
216
|
+
Offset 0 0 0
|
|
217
|
+
|
|
218
|
+
**delense032**:
|
|
219
|
+
Primitive lens artefact remover, obsolete(?)
|
|
220
|
+
|
|
221
|
+
delense032
|
|
222
|
+
|
|
223
|
+
**circleOut**:
|
|
224
|
+
Set voxels outside a circles (cylinder) of radius R centrrd at Xc Yc
|
|
225
|
+
|
|
226
|
+
circleOut ; //<- centre set to centre of image and radius to half of image (width+height)/2
|
|
227
|
+
circleOut 500 500 450 ; //<- centre_X=500 Y=500, radius=450 voxels
|
|
228
|
+
|
|
229
|
+
**growLabel**:
|
|
230
|
+
Propagate a voxel value iteratively to its adjacent ones, obsolete
|
|
231
|
+
|
|
232
|
+
growLabel 0 5
|
|
233
|
+
|
|
234
|
+
**fillHoles**:
|
|
235
|
+
Filter out small features (obsolete feature)
|
|
236
|
+
|
|
237
|
+
fillHoles 2
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
**readAtZ**:
|
|
241
|
+
Read a new image and assign it at the beginning of the given slice number (obsolete, see `mapFrom` instead)
|
|
242
|
+
|
|
243
|
+
readAtZ 1150
|
|
244
|
+
|
|
245
|
+
**maskWriteFraction**:
|
|
246
|
+
writes fraction of voxels of two images having the same value (TODO remove?)
|
|
247
|
+
|
|
248
|
+
maskWriteFraction "maskname.mhd" "outName.txt" 0 2 1000000
|
|
Binary file
|