Commit 4b9df457d854d95c77d8f2fa735e98c35ce9f801

Authored by rmatsuda
1 parent ea678bdb
Exists in master

Update FRE using icp matrix

Showing 1 changed file with 21 additions and 8 deletions   Show diff stats
invesalius/gui/task_navigator.py
@@ -310,6 +310,8 @@ class NeuronavigationPanel(wx.Panel): @@ -310,6 +310,8 @@ class NeuronavigationPanel(wx.Panel):
310 self.obj_reg_status = False 310 self.obj_reg_status = False
311 self.track_obj = False 311 self.track_obj = False
312 self.m_icp = None 312 self.m_icp = None
  313 + self.fre = None
  314 + self.icp_fre = None
313 self.event = threading.Event() 315 self.event = threading.Event()
314 316
315 self.coord_queue = QueueCustom(maxsize=1) 317 self.coord_queue = QueueCustom(maxsize=1)
@@ -476,7 +478,7 @@ class NeuronavigationPanel(wx.Panel): @@ -476,7 +478,7 @@ class NeuronavigationPanel(wx.Panel):
476 self.checkicp.Enable(True) 478 self.checkicp.Enable(True)
477 else: 479 else:
478 self.checkicp.Enable(False) 480 self.checkicp.Enable(False)
479 - self.checkicp.SetValue(False) 481 + #self.checkicp.SetValue(False)
480 482
481 #def UpdateImageCoordinates(self, position): 483 #def UpdateImageCoordinates(self, position):
482 def UpdateFRE(self, fre): 484 def UpdateFRE(self, fre):
@@ -686,8 +688,11 @@ class NeuronavigationPanel(wx.Panel): @@ -686,8 +688,11 @@ class NeuronavigationPanel(wx.Panel):
686 Publisher.sendMessage('Create marker', coord=img_coord, marker_id=None, colour=(1,0,0)) 688 Publisher.sendMessage('Create marker', coord=img_coord, marker_id=None, colour=(1,0,0))
687 Publisher.sendMessage('Create marker', coord=transf_coord, marker_id=None, colour=(0,0,1)) 689 Publisher.sendMessage('Create marker', coord=transf_coord, marker_id=None, colour=(0,0,1))
688 self.checkicp.Enable(True) 690 self.checkicp.Enable(True)
  691 + self.checkicp.SetValue(True)
  692 + self.icp = True
689 else: 693 else:
690 self.m_icp = None 694 self.m_icp = None
  695 + self.icp = False
691 696
692 return self.m_icp 697 return self.m_icp
693 698
@@ -696,7 +701,13 @@ class NeuronavigationPanel(wx.Panel): @@ -696,7 +701,13 @@ class NeuronavigationPanel(wx.Panel):
696 self.icp = True 701 self.icp = True
697 else: 702 else:
698 self.icp = False 703 self.icp = False
  704 + self.ctrl_icp()
699 705
  706 + def ctrl_icp(self):
  707 + if self.icp:
  708 + self.UpdateFRE(self.icp_fre)
  709 + else:
  710 + self.UpdateFRE(self.fre)
700 self.icp_queue.put_nowait([self.icp, self.m_icp]) 711 self.icp_queue.put_nowait([self.icp, self.m_icp])
701 print(self.icp, self.m_icp) 712 print(self.icp, self.m_icp)
702 713
@@ -788,8 +799,9 @@ class NeuronavigationPanel(wx.Panel): @@ -788,8 +799,9 @@ class NeuronavigationPanel(wx.Panel):
788 tracker_mode = self.trk_init, self.tracker_id, self.ref_mode_id 799 tracker_mode = self.trk_init, self.tracker_id, self.ref_mode_id
789 800
790 # compute fiducial registration error (FRE) 801 # compute fiducial registration error (FRE)
791 - fre = db.calculate_fre(self.fiducials_raw, self.fiducials, self.ref_mode_id, m_change)  
792 - self.UpdateFRE(fre) 802 + if not self.icp_fre:
  803 + self.fre = db.calculate_fre(self.fiducials_raw, self.fiducials, self.ref_mode_id, m_change)
  804 + self.UpdateFRE(self.fre)
793 805
794 if self.track_obj: 806 if self.track_obj:
795 # if object tracking is selected 807 # if object tracking is selected
@@ -849,11 +861,12 @@ class NeuronavigationPanel(wx.Panel): @@ -849,11 +861,12 @@ class NeuronavigationPanel(wx.Panel):
849 jobs.start() 861 jobs.start()
850 # del jobs 862 # del jobs
851 863
852 - if dlg.ICPcorregistration(fre):  
853 - m_icp = self.OnICP()  
854 - # calculate the FRE after ICP make no sense. Is there a way to quantify the new error?  
855 - #fre = db.calculate_fre(self.fiducials_raw, self.fiducials, self.ref_mode_id, m_change, m_icp)  
856 - #self.UpdateFRE(fre) 864 + if not self.checkicp.GetValue():
  865 + if dlg.ICPcorregistration(self.fre):
  866 + m_icp = self.OnICP()
  867 + self.icp_fre = db.calculate_fre(self.fiducials_raw, self.fiducials, self.ref_mode_id,
  868 + m_change, m_icp)
  869 + self.ctrl_icp()
857 870
858 def ResetImageFiducials(self): 871 def ResetImageFiducials(self):
859 for m in range(0, 3): 872 for m in range(0, 3):