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.
Files changed (215) hide show
  1. pnextract-0.0.0/MANIFEST.in +2 -0
  2. pnextract-0.0.0/PKG-INFO +29 -0
  3. pnextract-0.0.0/README.md +13 -0
  4. pnextract-0.0.0/pnextract/.git +1 -0
  5. pnextract-0.0.0/pnextract/.github/workflows/make_and_test.yml +27 -0
  6. pnextract-0.0.0/pnextract/.gitignore +60 -0
  7. pnextract-0.0.0/pnextract/Makefile +1 -0
  8. pnextract-0.0.0/pnextract/README.md +41 -0
  9. pnextract-0.0.0/pnextract/bin.7z +0 -0
  10. pnextract-0.0.0/pnextract/doc/Image.mhd +76 -0
  11. pnextract-0.0.0/pnextract/doc/libvoxel_commands.md +248 -0
  12. pnextract-0.0.0/pnextract/doc/pnextract_guide.pdf +0 -0
  13. pnextract-0.0.0/pnextract/src/Makefile +8 -0
  14. pnextract-0.0.0/pnextract/src/include/InputFile.h +384 -0
  15. pnextract-0.0.0/pnextract/src/include/README.md +84 -0
  16. pnextract-0.0.0/pnextract/src/include/globals.h +104 -0
  17. pnextract-0.0.0/pnextract/src/include/profilers.h +93 -0
  18. pnextract-0.0.0/pnextract/src/include/typses.h +849 -0
  19. pnextract-0.0.0/pnextract/src/libvoxel/Makefile +21 -0
  20. pnextract-0.0.0/pnextract/src/libvoxel/README.md +46 -0
  21. pnextract-0.0.0/pnextract/src/libvoxel/shapeToVoxel.h +254 -0
  22. pnextract-0.0.0/pnextract/src/libvoxel/test.py +28 -0
  23. pnextract-0.0.0/pnextract/src/libvoxel/voxelEndian.h +23 -0
  24. pnextract-0.0.0/pnextract/src/libvoxel/voxelImage.cpp +869 -0
  25. pnextract-0.0.0/pnextract/src/libvoxel/voxelImage.h +343 -0
  26. pnextract-0.0.0/pnextract/src/libvoxel/voxelImageI.h +1953 -0
  27. pnextract-0.0.0/pnextract/src/libvoxel/voxelImageProcess.cpp +89 -0
  28. pnextract-0.0.0/pnextract/src/libvoxel/voxelRegions.h +193 -0
  29. pnextract-0.0.0/pnextract/src/libvoxel/voxelTiff.h +334 -0
  30. pnextract-0.0.0/pnextract/src/pnm/Makefile +9 -0
  31. pnextract-0.0.0/pnextract/src/pnm/README.md +83 -0
  32. pnextract-0.0.0/pnextract/src/pnm/pnextract/ElementGNE.h +268 -0
  33. pnextract-0.0.0/pnextract/src/pnm/pnextract/Makefile +31 -0
  34. pnextract-0.0.0/pnextract/src/pnm/pnextract/README.md +78 -0
  35. pnextract-0.0.0/pnextract/src/pnm/pnextract/blockNet.cpp +581 -0
  36. pnextract-0.0.0/pnextract/src/pnm/pnextract/blockNet.h +135 -0
  37. pnextract-0.0.0/pnextract/src/pnm/pnextract/blockNet_vxlManip.cpp +569 -0
  38. pnextract-0.0.0/pnextract/src/pnm/pnextract/blockNet_write_cnm.cpp +228 -0
  39. pnextract-0.0.0/pnextract/src/pnm/pnextract/inputData.h +297 -0
  40. pnextract-0.0.0/pnextract/src/pnm/pnextract/medialRadius.cpp +365 -0
  41. pnextract-0.0.0/pnextract/src/pnm/pnextract/medialSurf.cpp +614 -0
  42. pnextract-0.0.0/pnextract/src/pnm/pnextract/medialSurf.h +151 -0
  43. pnextract-0.0.0/pnextract/src/pnm/pnextract/nextract.cpp +172 -0
  44. pnextract-0.0.0/pnextract/src/pnm/pnextract/test.py +33 -0
  45. pnextract-0.0.0/pnextract/src/pnm/pnextract/writers.h +51 -0
  46. pnextract-0.0.0/pnextract/src/pnm/pnextract/writers_vtk.cpp +595 -0
  47. pnextract-0.0.0/pnextract/src/pnm/pnextract/writers_vxl.cpp +198 -0
  48. pnextract-0.0.0/pnextract/src/script/Makefile.in +478 -0
  49. pnextract-0.0.0/pnextract/src/script/Makefile.msRoot +79 -0
  50. pnextract-0.0.0/pnextract/src/script/README.md +136 -0
  51. pnextract-0.0.0/pnextract/src/script/__init__.py +3 -0
  52. pnextract-0.0.0/pnextract/src/script/bashrc +37 -0
  53. pnextract-0.0.0/pnextract/src/script/initbash +315 -0
  54. pnextract-0.0.0/pnextract/src/script/makefile.3rd +73 -0
  55. pnextract-0.0.0/pnextract/src/script/msrc.py +121 -0
  56. pnextract-0.0.0/pnextract/src/script/testApp +54 -0
  57. pnextract-0.0.0/pnextract/src/script/toolchain.exe.txt +21 -0
  58. pnextract-0.0.0/pnextract/src/script/toolchain.icc.txt +20 -0
  59. pnextract-0.0.0/pnextract/src/script/toolchain.txt +17 -0
  60. pnextract-0.0.0/pnextract/thirdparty/libtiff/CMakeLists.txt +748 -0
  61. pnextract-0.0.0/pnextract/thirdparty/libtiff/COMMITTERS +19 -0
  62. pnextract-0.0.0/pnextract/thirdparty/libtiff/COPYRIGHT +21 -0
  63. pnextract-0.0.0/pnextract/thirdparty/libtiff/ChangeLog +9652 -0
  64. pnextract-0.0.0/pnextract/thirdparty/libtiff/HOWTO-RELEASE +146 -0
  65. pnextract-0.0.0/pnextract/thirdparty/libtiff/HOWTO-SECURITY-RELEASE +19 -0
  66. pnextract-0.0.0/pnextract/thirdparty/libtiff/Makefile.am +90 -0
  67. pnextract-0.0.0/pnextract/thirdparty/libtiff/Makefile.vc +57 -0
  68. pnextract-0.0.0/pnextract/thirdparty/libtiff/README.md +77 -0
  69. pnextract-0.0.0/pnextract/thirdparty/libtiff/RELEASE-DATE +1 -0
  70. pnextract-0.0.0/pnextract/thirdparty/libtiff/SConstruct +169 -0
  71. pnextract-0.0.0/pnextract/thirdparty/libtiff/TODO +10 -0
  72. pnextract-0.0.0/pnextract/thirdparty/libtiff/VERSION +1 -0
  73. pnextract-0.0.0/pnextract/thirdparty/libtiff/autogen.sh +8 -0
  74. pnextract-0.0.0/pnextract/thirdparty/libtiff/configure.ac +1208 -0
  75. pnextract-0.0.0/pnextract/thirdparty/libtiff/configure.com +1356 -0
  76. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/CMakeLists.txt +169 -0
  77. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/Makefile.am +156 -0
  78. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/Makefile.lcc +128 -0
  79. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/Makefile.vc +100 -0
  80. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/SConstruct +71 -0
  81. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/libtiff.def +175 -0
  82. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/libtiff.map +4 -0
  83. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/libtiffxx.map +4 -0
  84. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/mkg3states.c +452 -0
  85. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/mkspans.c +80 -0
  86. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/t4.h +290 -0
  87. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_aux.c +419 -0
  88. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_close.c +138 -0
  89. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_codec.c +171 -0
  90. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_color.c +307 -0
  91. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_compress.c +302 -0
  92. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_config.h-vms +46 -0
  93. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_config.h.cmake.in +231 -0
  94. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_config.vc.h +137 -0
  95. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_config.wince.h +69 -0
  96. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dir.c +1785 -0
  97. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dir.h +315 -0
  98. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dirinfo.c +1081 -0
  99. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dirread.c +6438 -0
  100. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dirwrite.c +3266 -0
  101. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_dumpmode.c +141 -0
  102. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_error.c +86 -0
  103. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_extension.c +116 -0
  104. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_fax3.c +1646 -0
  105. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_fax3.h +538 -0
  106. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_fax3sm.c +1260 -0
  107. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_flush.c +174 -0
  108. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_getimage.c +3058 -0
  109. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_jbig.c +232 -0
  110. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_jpeg.c +2596 -0
  111. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_jpeg_12.c +69 -0
  112. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_luv.c +1764 -0
  113. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_lzma.c +500 -0
  114. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_lzw.c +1232 -0
  115. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_next.c +187 -0
  116. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_ojpeg.c +2607 -0
  117. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_open.c +741 -0
  118. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_packbits.c +309 -0
  119. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_pixarlog.c +1477 -0
  120. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_predict.c +879 -0
  121. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_predict.h +81 -0
  122. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_print.c +718 -0
  123. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_read.c +1647 -0
  124. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_stream.cxx +434 -0
  125. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_strip.c +359 -0
  126. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_swab.c +310 -0
  127. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_thunder.c +206 -0
  128. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_tile.c +299 -0
  129. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_unix.c +384 -0
  130. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_version.c +39 -0
  131. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_vms.c +609 -0
  132. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_warning.c +87 -0
  133. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_webp.c +695 -0
  134. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_win32.c +435 -0
  135. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_wince.c +288 -0
  136. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_write.c +846 -0
  137. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_zip.c +456 -0
  138. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tif_zstd.c +440 -0
  139. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiff.h +695 -0
  140. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.h-vms +90 -0
  141. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.h.cmake.in +121 -0
  142. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.h.in +118 -0
  143. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.vc.h +152 -0
  144. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffconf.wince.h +110 -0
  145. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffio.h +568 -0
  146. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffio.hxx +48 -0
  147. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffiop.h +474 -0
  148. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffvers.h +9 -0
  149. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/tiffvers.h.in +9 -0
  150. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff/uvcode.h +180 -0
  151. pnextract-0.0.0/pnextract/thirdparty/libtiff/libtiff-4.pc.in +11 -0
  152. pnextract-0.0.0/pnextract/thirdparty/libtiff/nmake.opt +214 -0
  153. pnextract-0.0.0/pnextract/thirdparty/libtiff/tiff.spec +67 -0
  154. pnextract-0.0.0/pnextract/thirdparty/zlib/.gitignore +26 -0
  155. pnextract-0.0.0/pnextract/thirdparty/zlib/CMakeLists.txt +250 -0
  156. pnextract-0.0.0/pnextract/thirdparty/zlib/INDEX +68 -0
  157. pnextract-0.0.0/pnextract/thirdparty/zlib/Makefile +5 -0
  158. pnextract-0.0.0/pnextract/thirdparty/zlib/Makefile.in +410 -0
  159. pnextract-0.0.0/pnextract/thirdparty/zlib/README +115 -0
  160. pnextract-0.0.0/pnextract/thirdparty/zlib/README.md +14 -0
  161. pnextract-0.0.0/pnextract/thirdparty/zlib/adler32.c +186 -0
  162. pnextract-0.0.0/pnextract/thirdparty/zlib/compress.c +86 -0
  163. pnextract-0.0.0/pnextract/thirdparty/zlib/contrib/iostream3/README +35 -0
  164. pnextract-0.0.0/pnextract/thirdparty/zlib/contrib/iostream3/TODO +17 -0
  165. pnextract-0.0.0/pnextract/thirdparty/zlib/contrib/iostream3/test.cc +50 -0
  166. pnextract-0.0.0/pnextract/thirdparty/zlib/contrib/iostream3/zfstream.h +944 -0
  167. pnextract-0.0.0/pnextract/thirdparty/zlib/crc32.c +442 -0
  168. pnextract-0.0.0/pnextract/thirdparty/zlib/crc32.h +441 -0
  169. pnextract-0.0.0/pnextract/thirdparty/zlib/deflate.c +2163 -0
  170. pnextract-0.0.0/pnextract/thirdparty/zlib/deflate.h +349 -0
  171. pnextract-0.0.0/pnextract/thirdparty/zlib/gzclose.c +25 -0
  172. pnextract-0.0.0/pnextract/thirdparty/zlib/gzguts.h +218 -0
  173. pnextract-0.0.0/pnextract/thirdparty/zlib/gzlib.c +637 -0
  174. pnextract-0.0.0/pnextract/thirdparty/zlib/gzread.c +654 -0
  175. pnextract-0.0.0/pnextract/thirdparty/zlib/gzwrite.c +665 -0
  176. pnextract-0.0.0/pnextract/thirdparty/zlib/infback.c +640 -0
  177. pnextract-0.0.0/pnextract/thirdparty/zlib/inffast.c +323 -0
  178. pnextract-0.0.0/pnextract/thirdparty/zlib/inffast.h +11 -0
  179. pnextract-0.0.0/pnextract/thirdparty/zlib/inffixed.h +94 -0
  180. pnextract-0.0.0/pnextract/thirdparty/zlib/inflate.c +1561 -0
  181. pnextract-0.0.0/pnextract/thirdparty/zlib/inflate.h +125 -0
  182. pnextract-0.0.0/pnextract/thirdparty/zlib/inftrees.c +304 -0
  183. pnextract-0.0.0/pnextract/thirdparty/zlib/inftrees.h +62 -0
  184. pnextract-0.0.0/pnextract/thirdparty/zlib/treebuild.xml +116 -0
  185. pnextract-0.0.0/pnextract/thirdparty/zlib/trees.c +1203 -0
  186. pnextract-0.0.0/pnextract/thirdparty/zlib/trees.h +128 -0
  187. pnextract-0.0.0/pnextract/thirdparty/zlib/uncompr.c +93 -0
  188. pnextract-0.0.0/pnextract/thirdparty/zlib/win32/DLL_FAQ.txt +397 -0
  189. pnextract-0.0.0/pnextract/thirdparty/zlib/win32/Makefile.bor +110 -0
  190. pnextract-0.0.0/pnextract/thirdparty/zlib/win32/Makefile.gcc +182 -0
  191. pnextract-0.0.0/pnextract/thirdparty/zlib/win32/Makefile.msc +163 -0
  192. pnextract-0.0.0/pnextract/thirdparty/zlib/win32/README-WIN32.txt +103 -0
  193. pnextract-0.0.0/pnextract/thirdparty/zlib/win32/VisualC.txt +3 -0
  194. pnextract-0.0.0/pnextract/thirdparty/zlib/win32/zlib.def +94 -0
  195. pnextract-0.0.0/pnextract/thirdparty/zlib/win32/zlib1.rc +40 -0
  196. pnextract-0.0.0/pnextract/thirdparty/zlib/zconf.h.cmakein +536 -0
  197. pnextract-0.0.0/pnextract/thirdparty/zlib/zconf.h.in +534 -0
  198. pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.3 +149 -0
  199. pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.h +1912 -0
  200. pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.map +94 -0
  201. pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.pc.cmakein +13 -0
  202. pnextract-0.0.0/pnextract/thirdparty/zlib/zlib.pc.in +13 -0
  203. pnextract-0.0.0/pnextract/thirdparty/zlib/zlib2ansi +152 -0
  204. pnextract-0.0.0/pnextract/thirdparty/zlib/zutil.c +325 -0
  205. pnextract-0.0.0/pnextract/thirdparty/zlib/zutil.h +271 -0
  206. pnextract-0.0.0/pyproject.toml +30 -0
  207. pnextract-0.0.0/setup.cfg +4 -0
  208. pnextract-0.0.0/setup.py +32 -0
  209. pnextract-0.0.0/src/pnextract/__init__.py +0 -0
  210. pnextract-0.0.0/src/pnextract/__main__.py +20 -0
  211. pnextract-0.0.0/src/pnextract.egg-info/PKG-INFO +29 -0
  212. pnextract-0.0.0/src/pnextract.egg-info/SOURCES.txt +213 -0
  213. pnextract-0.0.0/src/pnextract.egg-info/dependency_links.txt +1 -0
  214. pnextract-0.0.0/src/pnextract.egg-info/entry_points.txt +3 -0
  215. pnextract-0.0.0/src/pnextract.egg-info/top_level.txt +1 -0
@@ -0,0 +1,2 @@
1
+ graft pnextract
2
+ prune pnextract/build
@@ -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
+ [![Build](https://github.com/lmmp-puc-rio/pnextract-pypi/actions/workflows/build.yml/badge.svg)](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
+ [![Build](https://github.com/lmmp-puc-rio/pnextract-pypi/actions/workflows/build.yml/badge.svg)](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
+ ![make and test](https://github.com/aliraeini/pnextract/workflows/make%20and%20test/badge.svg)
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
@@ -0,0 +1,8 @@
1
+
2
+ msSrc ?= .
3
+
4
+
5
+ all: ; $(MAKE) -f ${msSrc}/script/Makefile.in recurseMake USE_msRecurse=1
6
+ clean:; $(MAKE) -f ${msSrc}/script/Makefile.in recurseClean USE_msRecurse=1
7
+ test:; @echo tests are managed from the top directory
8
+