Scripts/Extract: extract.py

File extract.py, 1.6 kB (added by andreas, 4 years ago)
Line 
1 from ex.gui.inputdialog import *
2 from gui import Procedure
3
4
5 def load_image():
6         global image,viewer
7         load_dialog=InputDialog("Load image")
8         load_dialog.AddPath("Filename:","open")
9         if load_dialog.ShowModal():
10                 image=LoadImage(load_dialog.GetData()[0])
11                 viewer=Viewer(image)
12                 return True
13         return False
14
15 def extract_graphical():
16         global image,viewer
17         image=image.Extract(viewer.GetSelection())
18         viewer=Viewer(image)
19         return True
20
21 def extract_numerical():
22         global image,viewer
23         ext=image.GetExtent()
24         range_dialog=InputDialog("Extract range:")
25         range_dialog.AddInt("x1: ",ext.GetStart()[0],ext.GetEnd()[0],ext.GetStart()[0])
26         range_dialog.AddInt("y1: ",ext.GetStart()[1],ext.GetEnd()[1],ext.GetStart()[1])
27         range_dialog.AddInt("x2: ",ext.GetStart()[0],ext.GetEnd()[0],ext.GetEnd()[0])
28         range_dialog.AddInt("y2: ",ext.GetStart()[1],ext.GetEnd()[1],ext.GetEnd()[1])
29         if range_dialog.ShowModal():
30                 data=range_dialog.GetData()
31                 image=image.Extract(Extent(Point(data[0],data[1]),Point(data[2],data[3])))
32                 viewer=Viewer(image)
33                 return True
34         return False
35
36 def save_image():
37         global image,viewer
38         save_dialog=InputDialog("Save image")
39         save_dialog.AddPath("Filename: ","save")
40         if save_dialog.ShowModal():
41                 SaveImage(image,save_dialog.GetData()[0])
42                 return True
43         return False
44
45
46
47 procedure=Procedure('Subimage extraction')
48 step_1=procedure.AddStep(load_image,'Load image',[])
49 step_2=procedure.AddStep(extract_graphical,'Take subimage extent form selection',[step_1])
50 step_3=procedure.AddStep(extract_numerical,'Enter subimage extent manually',[step_1])
51 step_4=procedure.AddStep(save_image,'Save image',[step_1])
52 Shell.AddProcedure(procedure)