towards least_square_trf
This commit is contained in:
33
swissmx.py
33
swissmx.py
@@ -1541,8 +1541,12 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
|
||||
|
||||
self._moduleFixTarget =mft = ModuleFixTarget.WndFixTarget(self,data)
|
||||
tab = self._tabs_daq_methods.insertTab(0,mft,'Fix Target')
|
||||
self._tabs_daq_methods.setCurrentWidget(mft) #set this as the active tabs
|
||||
|
||||
mft._cbType.addItems(["Fiducial", "FixTarget(12.5x12.5)", "FixTarget(23.0x23.0)", "FixTarget(<param>)", "Grid(<param>)"])
|
||||
mft._btnAdd.clicked.connect(self.module_fix_target_add_obj)
|
||||
mft._btnDelAll.clicked.connect(self.module_fix_target_del_all_obj)
|
||||
mft._btnFit.clicked.connect(self.module_fix_target_fit_fiducial)
|
||||
|
||||
#tab.layout().addWidget(mft)
|
||||
mft.prefixSelected.connect(lambda prefix: self._le_prefix.setText(prefix))
|
||||
@@ -1659,6 +1663,35 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
|
||||
objLst.clear()
|
||||
mft._tree.setData(objLst)
|
||||
|
||||
def module_fix_target_fit_fiducial(self):
|
||||
mft=self._moduleFixTarget
|
||||
vb=self.vb
|
||||
objLst=self._goTracked['objLst']
|
||||
n=0
|
||||
for go in objLst:
|
||||
if type(go)==UsrGO.Fiducial:
|
||||
n+=1
|
||||
ptFitTrf=np.ndarray((4,2)) # 4 (x,y) points to fit a transformation of a parallelogram
|
||||
ptFitPlane=np.ndarray((n,3)) #n (x,y,z) points to fit a plane transformation z=ax+by+c
|
||||
i=j=0
|
||||
for go in reversed(objLst):
|
||||
if type(go)==UsrGO.FixTargetFrame:
|
||||
if j==4:
|
||||
trf=geometry.geometry.least_square_trf(ptFitTrf)
|
||||
tr=go.transform()
|
||||
tr.setMatrix(100, 0, 0,
|
||||
0, 100, 0,
|
||||
0, 0, 1)
|
||||
go.setTransform(tr)
|
||||
go.setPos(trf[:,2])
|
||||
go.setSize((1,1))
|
||||
j=0
|
||||
elif type(go)==UsrGO.Fiducial:
|
||||
ptFitTrf[j]=go.pos()+go.size()/2
|
||||
ptFitPlane[i]=go._xyz
|
||||
i+=1;j+=1
|
||||
plane=geometry.geometry.least_square_plane(ptFitPlane)
|
||||
|
||||
# **************** OBSOLETE AND/OR OLD STUFF ****************
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user