WF_test_.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. # import
  2. # ------------------------------------------------------------------------------------------
  3. import os, sys, math
  4. import numpy as np
  5. import easygui
  6. import colour
  7. # miam
  8. import miam.workflow.WFWorkflow as WF
  9. import miam.workflow.WFProcess as WP
  10. from miam.processing import NoOp, Duplicate,ExposureControl,TMO_Linear, TMO_CCTF
  11. # ------------------------------------------------------------------------------------------
  12. # MIAM project 2020
  13. # ------------------------------------------------------------------------------------------
  14. # author: remi.cozot@univ-littoral.fr
  15. # ------------------------------------------------------------------------------------------
  16. def WF_test_00():
  17. # (o) Root
  18. # |
  19. # v
  20. # [ o ]
  21. # [ NoOp ]
  22. # [ o ]
  23. # |
  24. # v
  25. # (_) Leaf
  26. # process
  27. wf = WF.WFWorkflow(name="test_00")
  28. p1 = wf.addProcess(WP.WFProcess(name = 'NOP_01', process=NoOp.NoOp()))
  29. p2 = wf.addProcess(WP.WFProcess(name = 'NOP_02', process=NoOp.NoOp()))
  30. wf.connect(outputProcess = wf.getByName('NOP_01'),
  31. inputProcess = p2
  32. )
  33. wf.compile()
  34. def WF_test_01():
  35. # (o) Root
  36. # |
  37. # v
  38. # [ o ]
  39. # [ exposure ]
  40. # [ o ]
  41. # |
  42. # v
  43. # (_) Leaf
  44. # process
  45. wf = WF.WFWorkflow(name="test_01")
  46. exposure = wf.addProcess(WP.WFProcess(name = 'exposure', process=ExposureControl.ExposureControl()).setParameters({'EV': +1}))
  47. wf.compile()
  48. wf.compute()
  49. wf.display()
  50. def WF_test_02():
  51. # process
  52. wf = WF.WFWorkflow(name="test_02")
  53. duplicate = wf.addProcess(WP.WFProcess(name = 'duplicate', process=Duplicate.Duplicate()).setParameters({'nb': 2}))
  54. exposureP1 = wf.addProcess(WP.WFProcess(name = 'exposure+1', process=ExposureControl.ExposureControl()).setParameters({'EV': +1}))
  55. exposureM1 = wf.addProcess(WP.WFProcess(name = 'exposure-1', process=ExposureControl.ExposureControl()).setParameters({'EV': -1}))
  56. wf.connect(outputProcess = duplicate, inputProcess = exposureP1)
  57. wf.connect(outputProcess = duplicate, inputProcess = exposureM1)
  58. wf.compile()
  59. wf.compute()
  60. wf.display()
  61. def WF_test_03():
  62. # (o) Root
  63. # |
  64. # v
  65. # [ o ]
  66. # [ duplicate ]
  67. # [ o | o ]
  68. # / \
  69. # / \
  70. # v v
  71. # [ o ] [ o ]
  72. # [ exposure ] [ TMO CCTF ]
  73. # [ o ] [ o ]
  74. # | |
  75. # v v
  76. # [ o ] (_) Leaf
  77. # [ TMO linear ]
  78. # [ o ]
  79. # |
  80. # v
  81. # (_) Leaf
  82. # process
  83. wf = WF.WFWorkflow(name="test_03")
  84. duplicate = wf.addProcess(WP.WFProcess(name = 'duplicate', process=Duplicate.Duplicate()).setParameters({'nb': 2}))
  85. exposure = wf.addProcess(WP.WFProcess(name = 'exposure', process=ExposureControl.ExposureControl()).setParameters({'auto': True, 'target': 0.5, 'EV': 0}))
  86. tmo_linear = wf.addProcess(WP.WFProcess(name = 'tmo_linear', process=TMO_Linear.TMO_Linear()).setParameters({'min': 0.0, 'max': 1.0}))
  87. tmo_cctf = wf.addProcess(WP.WFProcess(name = 'tmo_cctf', process=TMO_CCTF.TMO_CCTF()).setParameters({'function':'sRGB'}))
  88. wf.setRoot(duplicate)
  89. wf.connect(outputProcess = duplicate, inputProcess = exposure)
  90. wf.connect(outputProcess = exposure, inputProcess = tmo_linear)
  91. wf.connect(outputProcess = duplicate, inputProcess = tmo_cctf)
  92. wf.setLeaf(tmo_linear)
  93. wf.setLeaf(tmo_cctf)
  94. wf.compile()
  95. wf.compute()
  96. wf.display()
  97. def WF_JSON():
  98. jsonFile = "../workflows/wf01.json"
  99. wf = WF.WFWorkflow.readWorkflow(jsonFile)
  100. wf.compute()
  101. wf.display()