diff --git a/negstation/negstation.py b/negstation/negstation.py index 0aec7c3..1be46be 100644 --- a/negstation/negstation.py +++ b/negstation/negstation.py @@ -13,7 +13,7 @@ from .layout_manager import LayoutManager from .widgets.base_widget import BaseWidget -logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") +logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s") logger = logging.getLogger(__name__) diff --git a/negstation/widgets/crop_widget.py b/negstation/widgets/crop_widget.py new file mode 100644 index 0000000..de45f2c --- /dev/null +++ b/negstation/widgets/crop_widget.py @@ -0,0 +1,85 @@ +import dearpygui.dearpygui as dpg +import numpy as np +from .stage_viewer_widget import PipelineStageViewer + + +class CropWidget(PipelineStageViewer): + name = "Crop Image" + register = True + has_pipeline_in = True + has_pipeline_out = True + + def __init__(self, manager, logger): + super().__init__(manager, logger) + self.crop_start = None # (x, y) + self.crop_end = None # (x, y) + self.crop_active = False + + self.manager.bus.subscribe("img_clicked", self.on_click) + self.manager.bus.subscribe("img_dragged", self.on_drag) + + def create_pipeline_stage_content(self): + super().create_pipeline_stage_content() + + # def on_full_res_pipeline_data(self, img): + # pass + + def on_pipeline_data(self, img): + if img is None: + return + self.img = img + + if self.crop_start and self.crop_end: + x0, y0 = self.crop_start + x1, y1 = self.crop_end + x0, x1 = sorted((int(x0), int(x1))) + y0, y1 = sorted((int(y0), int(y1))) + + x0 = max(0, min(x0, img.shape[1]-1)) + x1 = max(0, min(x1, img.shape[1]-1)) + y0 = max(0, min(y0, img.shape[0]-1)) + y1 = max(0, min(y1, img.shape[0]-1)) + + cropped = img[y0:y1, x0:x1, :] + self.publish_stage(cropped) + else: + self.publish_stage(img) + + self.needs_update = True + + def on_click(self, data): + if data["obj"] is not self: + return + if data["button"] == "left": + self.crop_start = data["pos"] + self.crop_end = data["pos"] + self.crop_active = True + self.needs_update = True + + def on_drag(self, data): + if data["obj"] is not self or not self.crop_active: + return + self.crop_end = data["pos"] + self.needs_update = True + + def update_texture(self, img): + super().update_texture(img) + if self.crop_start and self.crop_end: + # map image coords back to screen coords + x0, y0 = self.crop_start + x1, y1 = self.crop_end + h, w, _ = self.img.shape + img_x, img_y = self.image_position + img_w, img_h = self.scaled_size + + p0 = ( + img_x + x0 / w * img_w, + img_y + y0 / h * img_h + ) + p1 = ( + img_x + x1 / w * img_w, + img_y + y1 / h * img_h + ) + + dpg.draw_rectangle(pmin=p0, pmax=p1, color=(255, 255, 0, 255), + fill=(255, 255, 0, 50), thickness=2, parent=self.drawlist) diff --git a/negstation/widgets/stage_viewer_widget.py b/negstation/widgets/stage_viewer_widget.py index 176f84e..3ffca1e 100644 --- a/negstation/widgets/stage_viewer_widget.py +++ b/negstation/widgets/stage_viewer_widget.py @@ -66,6 +66,7 @@ class PipelineStageViewer(PipelineStageWidget): if app_data[0] == 0 else ("left" if app_data[0] == 1 else ("middle")) ), + "obj":self, }, ) @@ -93,7 +94,8 @@ class PipelineStageViewer(PipelineStageWidget): "stage_id": self.pipeline_stage_in_id, "pos": (x, y), "button": data['button'], - "delta": data['delta'] + "delta": data['delta'], + "obj":self, }, ) @@ -120,7 +122,8 @@ class PipelineStageViewer(PipelineStageWidget): { "stage_id": self.pipeline_stage_in_id, "pos": (x, y), - "delta": data + "delta": data, + "obj":self, }, ) diff --git a/negstation_layout.ini b/negstation_layout.ini index 3d66ba1..7c7359e 100644 --- a/negstation_layout.ini +++ b/negstation_layout.ini @@ -112,7 +112,7 @@ DockId=0x00000013,1 [Window][###87] Pos=272,646 -Size=710,154 +Size=684,154 Collapsed=0 DockId=0x00000046,0 @@ -279,9 +279,9 @@ DockId=0x0000004A,0 [Window][###36] Pos=272,19 -Size=710,625 +Size=684,625 Collapsed=0 -DockId=0x00000014,0 +DockId=0x00000014,1 [Window][###48] Pos=0,714 @@ -314,14 +314,16 @@ Collapsed=0 DockId=0x00000047,0 [Window][###109] -Pos=60,60 -Size=216,263 +Pos=958,19 +Size=242,262 Collapsed=0 +DockId=0x00000057,0 [Window][###131] -Pos=60,60 -Size=141,100 +Pos=958,653 +Size=242,147 Collapsed=0 +DockId=0x00000056,0 [Window][###128] Pos=60,60 @@ -358,88 +360,118 @@ Size=216,163 Collapsed=0 DockId=0x00000052,0 -[Docking][Data] -DockSpace ID=0x7C6B3D9B Window=0xA87D555D Pos=0,19 Size=1200,781 Split=X - DockNode ID=0x00000037 Parent=0x7C6B3D9B SizeRef=982,781 Split=X - DockNode ID=0x0000002D Parent=0x00000037 SizeRef=970,781 Split=X - DockNode ID=0x0000002B Parent=0x0000002D SizeRef=937,781 Split=X - DockNode ID=0x00000027 Parent=0x0000002B SizeRef=982,781 Split=X - DockNode ID=0x00000023 Parent=0x00000027 SizeRef=982,781 Split=X - DockNode ID=0x0000001B Parent=0x00000023 SizeRef=972,781 Split=X - DockNode ID=0x00000017 Parent=0x0000001B SizeRef=898,781 Split=X - DockNode ID=0x00000009 Parent=0x00000017 SizeRef=270,581 Split=Y Selected=0x3BEDC6B0 - DockNode ID=0x0000000B Parent=0x00000009 SizeRef=196,474 Split=Y Selected=0x3BEDC6B0 - DockNode ID=0x0000000D Parent=0x0000000B SizeRef=196,99 Split=Y Selected=0x99D84869 - DockNode ID=0x00000012 Parent=0x0000000D SizeRef=196,423 Selected=0x0F59680E - DockNode ID=0x00000013 Parent=0x0000000D SizeRef=196,156 Split=Y Selected=0xB4AD3310 - DockNode ID=0x0000001F Parent=0x00000013 SizeRef=270,469 Split=Y Selected=0xD36850C8 - DockNode ID=0x00000035 Parent=0x0000001F SizeRef=270,693 Split=Y Selected=0xD36850C8 - DockNode ID=0x00000041 Parent=0x00000035 SizeRef=270,679 Selected=0x068DEF00 - DockNode ID=0x00000042 Parent=0x00000035 SizeRef=270,100 Selected=0x89CD1AA0 - DockNode ID=0x00000036 Parent=0x0000001F SizeRef=270,86 Selected=0xB9AFA00B - DockNode ID=0x00000020 Parent=0x00000013 SizeRef=270,154 Selected=0x0531B3D5 - DockNode ID=0x0000000E Parent=0x0000000B SizeRef=196,373 Selected=0x3BEDC6B0 - DockNode ID=0x0000000C Parent=0x00000009 SizeRef=196,105 Selected=0x4F81AB74 - DockNode ID=0x0000000A Parent=0x00000017 SizeRef=698,581 Split=X - DockNode ID=0x00000003 Parent=0x0000000A SizeRef=299,581 Split=Y Selected=0x52849BCC - DockNode ID=0x00000005 Parent=0x00000003 SizeRef=299,473 Split=Y Selected=0x52849BCC - DockNode ID=0x00000007 Parent=0x00000005 SizeRef=299,86 Selected=0x52849BCC - DockNode ID=0x00000008 Parent=0x00000005 SizeRef=299,385 Selected=0xBD79B41E - DockNode ID=0x00000006 Parent=0x00000003 SizeRef=299,106 Selected=0x84DD78D1 - DockNode ID=0x00000004 Parent=0x0000000A SizeRef=499,581 Split=Y - DockNode ID=0x00000001 Parent=0x00000004 SizeRef=800,379 Split=Y Selected=0x7FF1E0B5 - DockNode ID=0x0000000F Parent=0x00000001 SizeRef=602,588 Split=Y Selected=0x977476CD - DockNode ID=0x00000033 Parent=0x0000000F SizeRef=710,580 Split=Y Selected=0x977476CD - DockNode ID=0x00000043 Parent=0x00000033 SizeRef=710,591 Split=Y Selected=0x4EE4732B - DockNode ID=0x00000045 Parent=0x00000043 SizeRef=710,625 Split=Y Selected=0xD0D40C1D - DockNode ID=0x00000014 Parent=0x00000045 SizeRef=710,584 CentralNode=1 Selected=0xD0D40C1D - DockNode ID=0x00000015 Parent=0x00000045 SizeRef=710,195 Selected=0x38436B0F - DockNode ID=0x00000046 Parent=0x00000043 SizeRef=710,154 Selected=0x8773D56E - DockNode ID=0x00000044 Parent=0x00000033 SizeRef=710,188 Selected=0x72F373AE - DockNode ID=0x00000034 Parent=0x0000000F SizeRef=710,199 Selected=0x4F935A1E - DockNode ID=0x00000010 Parent=0x00000001 SizeRef=602,191 Selected=0x083320CE - DockNode ID=0x00000002 Parent=0x00000004 SizeRef=800,200 Selected=0x1834836D - DockNode ID=0x00000018 Parent=0x0000001B SizeRef=300,781 Selected=0x7E9438EA - DockNode ID=0x0000001C Parent=0x00000023 SizeRef=226,781 Split=Y Selected=0x714F2F7B - DockNode ID=0x0000001D Parent=0x0000001C SizeRef=216,344 Split=Y Selected=0x714F2F7B - DockNode ID=0x00000021 Parent=0x0000001D SizeRef=216,579 Split=Y Selected=0x714F2F7B - DockNode ID=0x00000019 Parent=0x00000021 SizeRef=216,391 Selected=0x714F2F7B - DockNode ID=0x0000001A Parent=0x00000021 SizeRef=216,388 Split=Y Selected=0x7E9438EA - DockNode ID=0x0000004B Parent=0x0000001A SizeRef=226,641 Selected=0x7E9438EA - DockNode ID=0x0000004C Parent=0x0000001A SizeRef=226,138 Split=Y Selected=0x499CCA81 - DockNode ID=0x00000047 Parent=0x0000004C SizeRef=226,624 Selected=0x43F4115A - DockNode ID=0x00000048 Parent=0x0000004C SizeRef=226,155 Selected=0x499CCA81 - DockNode ID=0x00000022 Parent=0x0000001D SizeRef=216,200 Selected=0x0D80EC84 - DockNode ID=0x0000001E Parent=0x0000001C SizeRef=216,435 Selected=0x7740BFE4 - DockNode ID=0x00000024 Parent=0x00000027 SizeRef=216,781 Split=Y Selected=0xCF08B82F - DockNode ID=0x00000025 Parent=0x00000024 SizeRef=216,579 Split=Y Selected=0xCF08B82F - DockNode ID=0x00000031 Parent=0x00000025 SizeRef=216,628 Selected=0x052342BF - DockNode ID=0x00000032 Parent=0x00000025 SizeRef=216,151 Split=Y Selected=0xCF08B82F - DockNode ID=0x0000003B Parent=0x00000032 SizeRef=216,634 Split=Y Selected=0xCF08B82F - DockNode ID=0x0000003F Parent=0x0000003B SizeRef=216,679 Selected=0xCF08B82F - DockNode ID=0x00000040 Parent=0x0000003B SizeRef=216,100 Selected=0x30E0C534 - DockNode ID=0x0000003C Parent=0x00000032 SizeRef=216,145 Split=Y Selected=0x82C01924 - DockNode ID=0x0000003D Parent=0x0000003C SizeRef=216,613 Split=Y Selected=0xF268919F - DockNode ID=0x00000049 Parent=0x0000003D SizeRef=216,632 Split=Y Selected=0xF268919F - DockNode ID=0x0000004F Parent=0x00000049 SizeRef=216,430 Split=Y Selected=0xF268919F - DockNode ID=0x00000051 Parent=0x0000004F SizeRef=216,467 Selected=0xF268919F - DockNode ID=0x00000052 Parent=0x0000004F SizeRef=216,163 Selected=0x817C45F1 - DockNode ID=0x00000050 Parent=0x00000049 SizeRef=216,200 Selected=0x5725A6EC - DockNode ID=0x0000004A Parent=0x0000003D SizeRef=216,147 Selected=0x4EE4732B - DockNode ID=0x0000003E Parent=0x0000003C SizeRef=216,166 Selected=0x82C01924 - DockNode ID=0x00000026 Parent=0x00000024 SizeRef=216,200 Selected=0x032CD220 - DockNode ID=0x00000028 Parent=0x0000002B SizeRef=216,781 Split=Y Selected=0xB5C8EB4F - DockNode ID=0x00000029 Parent=0x00000028 SizeRef=216,609 Selected=0xB5C8EB4F - DockNode ID=0x0000002A Parent=0x00000028 SizeRef=216,170 Split=Y Selected=0xF8004A44 - DockNode ID=0x0000004D Parent=0x0000002A SizeRef=216,575 Selected=0x7D28643F - DockNode ID=0x0000004E Parent=0x0000002A SizeRef=216,204 Selected=0xF8004A44 - DockNode ID=0x0000002C Parent=0x0000002D SizeRef=261,781 Split=Y Selected=0xC8700185 - DockNode ID=0x00000011 Parent=0x0000002C SizeRef=142,534 Selected=0x3A881EEF - DockNode ID=0x00000016 Parent=0x0000002C SizeRef=142,245 Selected=0xC8700185 - DockNode ID=0x0000002E Parent=0x00000037 SizeRef=228,781 Split=Y Selected=0x4C2F06CB - DockNode ID=0x0000002F Parent=0x0000002E SizeRef=216,560 Selected=0x4C2F06CB - DockNode ID=0x00000030 Parent=0x0000002E SizeRef=216,219 Selected=0x04546B8A - DockNode ID=0x00000038 Parent=0x7C6B3D9B SizeRef=216,781 Split=Y Selected=0x88A8C2FF - DockNode ID=0x00000039 Parent=0x00000038 SizeRef=216,561 Selected=0x88A8C2FF - DockNode ID=0x0000003A Parent=0x00000038 SizeRef=216,218 Selected=0xC56063F4 +[Window][###170] +Pos=272,19 +Size=710,625 +Collapsed=0 +DockId=0x00000014,1 + +[Window][###148] +Pos=272,19 +Size=710,625 +Collapsed=0 +DockId=0x00000014,0 + +[Window][###169] +Pos=272,19 +Size=684,625 +Collapsed=0 +DockId=0x00000014,0 + +[Window][###152] +Pos=958,283 +Size=242,368 +Collapsed=0 +DockId=0x00000058,0 + +[Docking][Data] +DockSpace ID=0x7C6B3D9B Window=0xA87D555D Pos=0,19 Size=1200,781 Split=X + DockNode ID=0x00000053 Parent=0x7C6B3D9B SizeRef=956,781 Split=X + DockNode ID=0x00000037 Parent=0x00000053 SizeRef=982,781 Split=X + DockNode ID=0x0000002D Parent=0x00000037 SizeRef=970,781 Split=X + DockNode ID=0x0000002B Parent=0x0000002D SizeRef=937,781 Split=X + DockNode ID=0x00000027 Parent=0x0000002B SizeRef=982,781 Split=X + DockNode ID=0x00000023 Parent=0x00000027 SizeRef=982,781 Split=X + DockNode ID=0x0000001B Parent=0x00000023 SizeRef=972,781 Split=X + DockNode ID=0x00000017 Parent=0x0000001B SizeRef=898,781 Split=X + DockNode ID=0x00000009 Parent=0x00000017 SizeRef=270,581 Split=Y Selected=0x3BEDC6B0 + DockNode ID=0x0000000B Parent=0x00000009 SizeRef=196,474 Split=Y Selected=0x3BEDC6B0 + DockNode ID=0x0000000D Parent=0x0000000B SizeRef=196,99 Split=Y Selected=0x99D84869 + DockNode ID=0x00000012 Parent=0x0000000D SizeRef=196,423 Selected=0x0F59680E + DockNode ID=0x00000013 Parent=0x0000000D SizeRef=196,156 Split=Y Selected=0xB4AD3310 + DockNode ID=0x0000001F Parent=0x00000013 SizeRef=270,469 Split=Y Selected=0xD36850C8 + DockNode ID=0x00000035 Parent=0x0000001F SizeRef=270,693 Split=Y Selected=0xD36850C8 + DockNode ID=0x00000041 Parent=0x00000035 SizeRef=270,679 Selected=0x068DEF00 + DockNode ID=0x00000042 Parent=0x00000035 SizeRef=270,100 Selected=0x89CD1AA0 + DockNode ID=0x00000036 Parent=0x0000001F SizeRef=270,86 Selected=0xB9AFA00B + DockNode ID=0x00000020 Parent=0x00000013 SizeRef=270,154 Selected=0x0531B3D5 + DockNode ID=0x0000000E Parent=0x0000000B SizeRef=196,373 Selected=0x3BEDC6B0 + DockNode ID=0x0000000C Parent=0x00000009 SizeRef=196,105 Selected=0x4F81AB74 + DockNode ID=0x0000000A Parent=0x00000017 SizeRef=684,581 Split=X + DockNode ID=0x00000003 Parent=0x0000000A SizeRef=299,581 Split=Y Selected=0x52849BCC + DockNode ID=0x00000005 Parent=0x00000003 SizeRef=299,473 Split=Y Selected=0x52849BCC + DockNode ID=0x00000007 Parent=0x00000005 SizeRef=299,86 Selected=0x52849BCC + DockNode ID=0x00000008 Parent=0x00000005 SizeRef=299,385 Selected=0xBD79B41E + DockNode ID=0x00000006 Parent=0x00000003 SizeRef=299,106 Selected=0x84DD78D1 + DockNode ID=0x00000004 Parent=0x0000000A SizeRef=499,581 Split=Y + DockNode ID=0x00000001 Parent=0x00000004 SizeRef=800,379 Split=Y Selected=0x7FF1E0B5 + DockNode ID=0x0000000F Parent=0x00000001 SizeRef=602,588 Split=Y Selected=0x977476CD + DockNode ID=0x00000033 Parent=0x0000000F SizeRef=710,580 Split=Y Selected=0x977476CD + DockNode ID=0x00000043 Parent=0x00000033 SizeRef=710,591 Split=Y Selected=0x4EE4732B + DockNode ID=0x00000045 Parent=0x00000043 SizeRef=710,625 Split=Y Selected=0xD0D40C1D + DockNode ID=0x00000014 Parent=0x00000045 SizeRef=710,584 CentralNode=1 Selected=0xD0D40C1D + DockNode ID=0x00000015 Parent=0x00000045 SizeRef=710,195 Selected=0x38436B0F + DockNode ID=0x00000046 Parent=0x00000043 SizeRef=710,154 Selected=0x8773D56E + DockNode ID=0x00000044 Parent=0x00000033 SizeRef=710,188 Selected=0x72F373AE + DockNode ID=0x00000034 Parent=0x0000000F SizeRef=710,199 Selected=0x4F935A1E + DockNode ID=0x00000010 Parent=0x00000001 SizeRef=602,191 Selected=0x083320CE + DockNode ID=0x00000002 Parent=0x00000004 SizeRef=800,200 Selected=0x1834836D + DockNode ID=0x00000018 Parent=0x0000001B SizeRef=300,781 Selected=0x7E9438EA + DockNode ID=0x0000001C Parent=0x00000023 SizeRef=226,781 Split=Y Selected=0x714F2F7B + DockNode ID=0x0000001D Parent=0x0000001C SizeRef=216,344 Split=Y Selected=0x714F2F7B + DockNode ID=0x00000021 Parent=0x0000001D SizeRef=216,579 Split=Y Selected=0x714F2F7B + DockNode ID=0x00000019 Parent=0x00000021 SizeRef=216,391 Selected=0x714F2F7B + DockNode ID=0x0000001A Parent=0x00000021 SizeRef=216,388 Split=Y Selected=0x7E9438EA + DockNode ID=0x0000004B Parent=0x0000001A SizeRef=226,641 Selected=0x7E9438EA + DockNode ID=0x0000004C Parent=0x0000001A SizeRef=226,138 Split=Y Selected=0x499CCA81 + DockNode ID=0x00000047 Parent=0x0000004C SizeRef=226,624 Selected=0x43F4115A + DockNode ID=0x00000048 Parent=0x0000004C SizeRef=226,155 Selected=0x499CCA81 + DockNode ID=0x00000022 Parent=0x0000001D SizeRef=216,200 Selected=0x0D80EC84 + DockNode ID=0x0000001E Parent=0x0000001C SizeRef=216,435 Selected=0x7740BFE4 + DockNode ID=0x00000024 Parent=0x00000027 SizeRef=216,781 Split=Y Selected=0xCF08B82F + DockNode ID=0x00000025 Parent=0x00000024 SizeRef=216,579 Split=Y Selected=0xCF08B82F + DockNode ID=0x00000031 Parent=0x00000025 SizeRef=216,628 Selected=0x052342BF + DockNode ID=0x00000032 Parent=0x00000025 SizeRef=216,151 Split=Y Selected=0xCF08B82F + DockNode ID=0x0000003B Parent=0x00000032 SizeRef=216,634 Split=Y Selected=0xCF08B82F + DockNode ID=0x0000003F Parent=0x0000003B SizeRef=216,679 Selected=0xCF08B82F + DockNode ID=0x00000040 Parent=0x0000003B SizeRef=216,100 Selected=0x30E0C534 + DockNode ID=0x0000003C Parent=0x00000032 SizeRef=216,145 Split=Y Selected=0x82C01924 + DockNode ID=0x0000003D Parent=0x0000003C SizeRef=216,613 Split=Y Selected=0xF268919F + DockNode ID=0x00000049 Parent=0x0000003D SizeRef=216,632 Split=Y Selected=0xF268919F + DockNode ID=0x0000004F Parent=0x00000049 SizeRef=216,430 Split=Y Selected=0xF268919F + DockNode ID=0x00000051 Parent=0x0000004F SizeRef=216,467 Selected=0xF268919F + DockNode ID=0x00000052 Parent=0x0000004F SizeRef=216,163 Selected=0x817C45F1 + DockNode ID=0x00000050 Parent=0x00000049 SizeRef=216,200 Selected=0x5725A6EC + DockNode ID=0x0000004A Parent=0x0000003D SizeRef=216,147 Selected=0x4EE4732B + DockNode ID=0x0000003E Parent=0x0000003C SizeRef=216,166 Selected=0x82C01924 + DockNode ID=0x00000026 Parent=0x00000024 SizeRef=216,200 Selected=0x032CD220 + DockNode ID=0x00000028 Parent=0x0000002B SizeRef=216,781 Split=Y Selected=0xB5C8EB4F + DockNode ID=0x00000029 Parent=0x00000028 SizeRef=216,609 Selected=0xB5C8EB4F + DockNode ID=0x0000002A Parent=0x00000028 SizeRef=216,170 Split=Y Selected=0xF8004A44 + DockNode ID=0x0000004D Parent=0x0000002A SizeRef=216,575 Selected=0x7D28643F + DockNode ID=0x0000004E Parent=0x0000002A SizeRef=216,204 Selected=0xF8004A44 + DockNode ID=0x0000002C Parent=0x0000002D SizeRef=261,781 Split=Y Selected=0xC8700185 + DockNode ID=0x00000011 Parent=0x0000002C SizeRef=142,534 Selected=0x3A881EEF + DockNode ID=0x00000016 Parent=0x0000002C SizeRef=142,245 Selected=0xC8700185 + DockNode ID=0x0000002E Parent=0x00000037 SizeRef=228,781 Split=Y Selected=0x4C2F06CB + DockNode ID=0x0000002F Parent=0x0000002E SizeRef=216,560 Selected=0x4C2F06CB + DockNode ID=0x00000030 Parent=0x0000002E SizeRef=216,219 Selected=0x04546B8A + DockNode ID=0x00000038 Parent=0x00000053 SizeRef=216,781 Split=Y Selected=0x88A8C2FF + DockNode ID=0x00000039 Parent=0x00000038 SizeRef=216,561 Selected=0x88A8C2FF + DockNode ID=0x0000003A Parent=0x00000038 SizeRef=216,218 Selected=0xC56063F4 + DockNode ID=0x00000054 Parent=0x7C6B3D9B SizeRef=242,781 Split=Y Selected=0xA2A5002C + DockNode ID=0x00000055 Parent=0x00000054 SizeRef=158,632 Split=Y Selected=0xA2A5002C + DockNode ID=0x00000057 Parent=0x00000055 SizeRef=158,262 Selected=0x85B8A08E + DockNode ID=0x00000058 Parent=0x00000055 SizeRef=158,368 Selected=0xA2A5002C + DockNode ID=0x00000056 Parent=0x00000054 SizeRef=158,147 Selected=0x335C99E1 diff --git a/negstation_widgets.json b/negstation_widgets.json index 740e68a..9707d42 100644 --- a/negstation_widgets.json +++ b/negstation_widgets.json @@ -4,7 +4,8 @@ "1": "inverted_image", "2": "opened_raw", "3": "monochrome", - "4": "oriented_image" + "4": "oriented_image", + "5": "cropped_image" }, "widgets": [ { @@ -20,7 +21,7 @@ "widget_type": "PipelineStageViewer", "config": { "pipeline_config": { - "stage_in": 4, + "stage_in": 5, "stage_out": null } } @@ -73,7 +74,7 @@ "widget_type": "HistogramWidget", "config": { "pipeline_config": { - "stage_in": 4, + "stage_in": 5, "stage_out": null } } @@ -82,7 +83,7 @@ "widget_type": "ExportStage", "config": { "pipeline_config": { - "stage_in": 4, + "stage_in": 5, "stage_out": null } } @@ -95,11 +96,20 @@ "stage_out": 4 }, "orientation": { - "rotation": 0, + "rotation": 180, "mirror_h": "False", "mirror_v": "False" } } + }, + { + "widget_type": "CropWidget", + "config": { + "pipeline_config": { + "stage_in": 4, + "stage_out": 5 + } + } } ] } \ No newline at end of file