Commit 4b9df457d854d95c77d8f2fa735e98c35ce9f801
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 | 310 | self.obj_reg_status = False |
311 | 311 | self.track_obj = False |
312 | 312 | self.m_icp = None |
313 | + self.fre = None | |
314 | + self.icp_fre = None | |
313 | 315 | self.event = threading.Event() |
314 | 316 | |
315 | 317 | self.coord_queue = QueueCustom(maxsize=1) |
... | ... | @@ -476,7 +478,7 @@ class NeuronavigationPanel(wx.Panel): |
476 | 478 | self.checkicp.Enable(True) |
477 | 479 | else: |
478 | 480 | self.checkicp.Enable(False) |
479 | - self.checkicp.SetValue(False) | |
481 | + #self.checkicp.SetValue(False) | |
480 | 482 | |
481 | 483 | #def UpdateImageCoordinates(self, position): |
482 | 484 | def UpdateFRE(self, fre): |
... | ... | @@ -686,8 +688,11 @@ class NeuronavigationPanel(wx.Panel): |
686 | 688 | Publisher.sendMessage('Create marker', coord=img_coord, marker_id=None, colour=(1,0,0)) |
687 | 689 | Publisher.sendMessage('Create marker', coord=transf_coord, marker_id=None, colour=(0,0,1)) |
688 | 690 | self.checkicp.Enable(True) |
691 | + self.checkicp.SetValue(True) | |
692 | + self.icp = True | |
689 | 693 | else: |
690 | 694 | self.m_icp = None |
695 | + self.icp = False | |
691 | 696 | |
692 | 697 | return self.m_icp |
693 | 698 | |
... | ... | @@ -696,7 +701,13 @@ class NeuronavigationPanel(wx.Panel): |
696 | 701 | self.icp = True |
697 | 702 | else: |
698 | 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 | 711 | self.icp_queue.put_nowait([self.icp, self.m_icp]) |
701 | 712 | print(self.icp, self.m_icp) |
702 | 713 | |
... | ... | @@ -788,8 +799,9 @@ class NeuronavigationPanel(wx.Panel): |
788 | 799 | tracker_mode = self.trk_init, self.tracker_id, self.ref_mode_id |
789 | 800 | |
790 | 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 | 806 | if self.track_obj: |
795 | 807 | # if object tracking is selected |
... | ... | @@ -849,11 +861,12 @@ class NeuronavigationPanel(wx.Panel): |
849 | 861 | jobs.start() |
850 | 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 | 871 | def ResetImageFiducials(self): |
859 | 872 | for m in range(0, 3): | ... | ... |