optimize imports and cleanup code
This commit is contained in:
@@ -18,7 +18,7 @@ _log=logging.getLogger(__name__)
|
||||
import pyqtgraph as pg
|
||||
from pyqtgraph.Qt import QtCore, QtGui
|
||||
import numpy as np
|
||||
from PyQt5.QtGui import QPolygon,QPolygonF
|
||||
from PyQt5.QtGui import QPolygonF
|
||||
from PyQt5.QtCore import Qt,QPointF,QLineF
|
||||
from PyQt5.QtWidgets import QMenu
|
||||
|
||||
@@ -94,22 +94,12 @@ class Marker(UsrROI):
|
||||
#widget.signal.connect(slot_function)
|
||||
#self.sigRegionChangeFinished.connect(self.OnRgnChanged)
|
||||
|
||||
#def OnRgnChanged(self, event):
|
||||
# print(event)
|
||||
# obj_info(self)
|
||||
|
||||
def paint(self, p, *args):
|
||||
#pg.ROI.paint(self, p, *args)
|
||||
r=QtCore.QRectF(0, 0, self.state['size'][0], self.state['size'][1]).normalized()
|
||||
p.setRenderHint(QtGui.QPainter.Antialiasing)
|
||||
p.setPen(self.currentPen)
|
||||
p.translate(r.left(), r.top())
|
||||
#p.scale(r.width(), r.height()) # -> values x,y 0 to 1
|
||||
#f=p.font();
|
||||
#f.setPixelSize(50)
|
||||
#p.setFont(f)
|
||||
# p.drawText(0, 0, '{:.0f}x{:.0f}'.format(*tuple(self.size())))
|
||||
#p.drawText(0, 0, 'Thierry')
|
||||
|
||||
p.scale(.01*r.width(), .01*r.height()) # -> values x,y 0 to 100
|
||||
m=self._mode
|
||||
@@ -129,7 +119,6 @@ class Marker(UsrROI):
|
||||
ctr=tuple((self.pos()+self.size()/2)*1000)
|
||||
sz=tuple(self.size()*1000)
|
||||
p.drawText(ofx+5, ofy+45, '{:.1f}x{:.1f} um'.format(*sz))
|
||||
#p.drawText(5, -35, '{:.1f}'.format(ctr[0]))
|
||||
p.drawText(ofx+5, ofy+55,42,30,Qt.AlignRight, '{:.1f}'.format(ctr[0]))
|
||||
p.drawText(ofx+55, ofy+65, '{:.1f} um'.format(ctr[1]))
|
||||
|
||||
@@ -145,8 +134,6 @@ class Marker(UsrROI):
|
||||
f=p.font();
|
||||
f.setPixelSize(10)
|
||||
p.setFont(f)
|
||||
#p.drawText(ofx+0, ofy+0, 'FFF')
|
||||
#p.drawText(ofx+100, ofy+100, 'GGG')
|
||||
px=tuple(self.pos()+self.size()/2)
|
||||
p.drawText(ofx+18, ofy+10, 'optical center')
|
||||
p.drawText(ofx+5, ofy+80,42,30,Qt.AlignRight, '{:.1f}'.format(px[0]))
|
||||
@@ -184,17 +171,11 @@ class Fiducial(UsrROI):
|
||||
p.setPen(pg.mkPen(width=1, color=[255, 0, 0]))
|
||||
p.drawLine(pg.Point(50,10), pg.Point(50, 90))
|
||||
p.drawLine(pg.Point(10,50), pg.Point(90, 50))
|
||||
#tr=p.transform()
|
||||
#tr.setMatrix(tr.m11(), tr.m12(), tr.m13(), tr.m21(), -tr.m22(), tr.m23(), tr.m31(), tr.m32(), tr.m33())
|
||||
#p.setTransform(tr)
|
||||
f=p.font()
|
||||
f.setPixelSize(10)
|
||||
p.setFont(f)
|
||||
#p.drawText(24, 20, 'beam marker')
|
||||
ctr=tuple(self.pos()+self.size()/2)
|
||||
sz=tuple(self.size())
|
||||
#print((*ctr,self._z))
|
||||
#p.drawText(5, 25, 'x{:.4g}\ny{:.4g}\nz{:.4g}'.format(*ctr,self._z))
|
||||
p.drawText(52, 10,40,40,Qt.TextWordWrap, 'x{:.5g}\ny{:.5g}\nz{:.5g}'.format(*ctr,self._z))
|
||||
|
||||
def ctr(self):
|
||||
@@ -253,11 +234,6 @@ class Grid(UsrROI):
|
||||
x=i*px
|
||||
p.drawEllipse(QPointF(x,y), rx, ry)
|
||||
|
||||
#p.translate(r.left(), r.top())
|
||||
#p.scale(r.width(), r.height())
|
||||
#p.drawEllipse(0, 0, 1, 1)
|
||||
#p.drawRect(0, 0, 1, 1)
|
||||
|
||||
def __repr__(self):
|
||||
s=f'{self.__class__.__name__}:(pos:{itr2str(self.pos())}, size:{itr2str(self.size())}, cnt:{self._cnt}, fidSize:{self._fidSz}, param:{self._param})'
|
||||
return s
|
||||
@@ -276,7 +252,6 @@ class Grid(UsrROI):
|
||||
def get_scan_param(self):
|
||||
'returns scan parameters for scanning with deltatau. the format is as used for shapepath'
|
||||
scan=1 # snake motion Y fast, X slow (default)
|
||||
#pos=np.array(self.pos())
|
||||
cnt=np.array(self._cnt,np.int32)
|
||||
sz=np.array(self.size())
|
||||
pitch=sz/cnt
|
||||
@@ -292,7 +267,6 @@ class Grid(UsrROI):
|
||||
for i in range(1, cnt[0], 2):
|
||||
yy[i]=yy[i][::-1]
|
||||
pts=np.array([xx.reshape(-1), yy.reshape(-1)], dtype=np.float64).transpose()*pitch
|
||||
#pts+=pos
|
||||
param={'points':pts}
|
||||
param.update(self._param)
|
||||
assert(param.get('code_gen',0)==0) # this provides fully x,y motor coordinates
|
||||
@@ -348,8 +322,6 @@ class Path(UsrROI):
|
||||
r=self._rect
|
||||
p.setRenderHint(QtGui.QPainter.Antialiasing)
|
||||
p.setPen(self.currentPen)
|
||||
#p.drawEllipse(0, 0, int(sz[0]), int(sz[1]))
|
||||
#p.drawRect(0, 0, int(sz[0]), int(sz[1]))
|
||||
p.drawRect(QtCore.QRectF(0, 0, sz[0], sz[1]).normalized())
|
||||
#obj_info(p)
|
||||
p.scale(sz[0]/r.width(), sz[1]/r.height())
|
||||
@@ -470,19 +442,12 @@ class FixTargetFrame(UsrROI):
|
||||
self.addScaleHandle([1, 1], [0, 0])
|
||||
self.addScaleHandle([0, 0], [1, 1])
|
||||
self.addScaleRotateHandle([1, 0], [0, 0])
|
||||
#self.sigHoverEvent.connect(self.hover)
|
||||
# def hover(self):
|
||||
# _log.debug(f'hover {self}')
|
||||
|
||||
def paint(self, p, *args):
|
||||
#pg.ROI.paint(self, p, *args)
|
||||
sz=self.state['size']
|
||||
#nx, ny=self._cnt
|
||||
#px, py=sz[0]/(nx-1), sz[1]/(ny-1)
|
||||
r=QtCore.QRectF(0, 0, sz[0], sz[1]).normalized()
|
||||
p.setRenderHint(QtGui.QPainter.Antialiasing)
|
||||
p.setPen(self.currentPen)
|
||||
#p.drawRect(0, 0, int(sz[0]), int(sz[1]))
|
||||
p.drawRect(r)
|
||||
|
||||
dscr=self._dscr
|
||||
@@ -496,8 +461,6 @@ class FixTargetFrame(UsrROI):
|
||||
ox,oy=g['pos']
|
||||
px,py=g['pitch']
|
||||
nx,ny=g['count']
|
||||
#x0=ox; x1=ox+(ny-1)*py
|
||||
#y0=oy; y1=oy+(nx-1)*px
|
||||
x0=ox-.5*px; x1=ox+(nx-.5)*px
|
||||
y0=oy-.5*py; y1=oy+(ny-.5)*py
|
||||
for i in range(nx):
|
||||
@@ -558,10 +521,7 @@ class FixTargetFrame(UsrROI):
|
||||
scan=1 # snake motion Y fast, X slow (default)
|
||||
grid=self._dscr['grid']
|
||||
self._dscr['size']
|
||||
#pos=np.array(self.pos())
|
||||
cnt =np.array(grid['count'],np.int32)
|
||||
#pos =np.array(grid['pos'],np.float64)
|
||||
#pitch=np.array(grid['pitch'],np.float64)
|
||||
xx, yy=np.meshgrid(range(cnt[0]), range(cnt[1]))
|
||||
if scan==0: # snake motion X fast, Y slow
|
||||
for i in range(1,cnt[1],2):
|
||||
@@ -592,11 +552,6 @@ class FixTargetFrame(UsrROI):
|
||||
param={'grid':grid, 'points':pts, 'trf':trf}
|
||||
param.update(self._param)
|
||||
|
||||
# trf*'gridpos' -> motor pos in mm
|
||||
# {'pos': [2080, 2080], 'pitch': [120, 120], 'count': [162, 162]}
|
||||
#np.array((0,0,1))*trf grid 0,0 (top left)
|
||||
#np.array((161,0,1))*trf # grid 161,0 (top right)
|
||||
#np.array((161,161,1))*trf # grid 161,161 (bottom right)
|
||||
return param
|
||||
|
||||
|
||||
@@ -645,9 +600,6 @@ if __name__=='__main__':
|
||||
|
||||
p.setRenderHint(QtGui.QPainter.Antialiasing)
|
||||
p.setPen(self.currentPen)
|
||||
# p.translate(r.left(), r.top())
|
||||
# p.scale(r.width(), r.height())
|
||||
# p.drawRect(0, 0, 1, 1)
|
||||
p.drawRect(r)
|
||||
tr=p.worldTransform()
|
||||
obj_info(tr)
|
||||
@@ -702,15 +654,9 @@ if __name__=='__main__':
|
||||
|
||||
|
||||
def mouse_click_event(event):
|
||||
#event.pos(): return Point(self.currentItem.mapFromScene(self._scenePos))
|
||||
pos=event.pos()
|
||||
scn=event.scenePos() # there is a small black border, that makes the difference
|
||||
print(f'mouse-> scene pos:{pt2str(scn)} currentItem pos:{pt2str(pos)}')
|
||||
#img=viImg.mapFromScene(scn)
|
||||
#roi=viUsrRoi.mapFromScene(scn)
|
||||
#print(f'mouse-> img:{pt2str(img)} roi:{pt2str(roi)}')
|
||||
#childTree(vb)
|
||||
#obj_info(viImg)
|
||||
m=int(event.modifiers())
|
||||
o=event.currentItem
|
||||
if m&Qt.ShiftModifier:
|
||||
@@ -721,9 +667,6 @@ if __name__=='__main__':
|
||||
elif m&Qt.ControlModifier:
|
||||
tr=o.transform()
|
||||
obj_info(tr)
|
||||
#tr.setMatrix(tr.m11(),tr.m12(),tr.m13()+100,tr.m21(),tr.m22(),tr.m23(),tr.m31(),tr.m32(),tr.m33())
|
||||
#tr.setMatrix(tr.m11(),tr.m12(),tr.m13(),tr.m21(),tr.m22(),tr.m23(),tr.m31(),tr.m32()+20,tr.m33())
|
||||
#tr.setMatrix(tr.m11(),tr.m12(),tr.m13(),tr.m21(),-tr.m22(),tr.m23(),tr.m31(),tr.m32(),tr.m33())
|
||||
tr.setMatrix(-tr.m11(),tr.m12(),tr.m13(),tr.m21(),-tr.m22(),tr.m23(),tr.m31(),tr.m32(),tr.m33())
|
||||
obj_info(tr)
|
||||
o.setTransform(tr)
|
||||
@@ -774,24 +717,16 @@ if __name__=='__main__':
|
||||
|
||||
viImg=pg.ImageItem(arr, border='y')
|
||||
vb.addItem(viImg)
|
||||
# Custom ROI for selecting an image region
|
||||
#viRoi=pg.ROI([20, -50], [60, 40])
|
||||
#viRoi=TxtROI([20, -50], [60, 40])
|
||||
#viRoi.addScaleHandle([1, 1], [0, 0])
|
||||
#viRoi.addScaleHandle([.7, .5], [0, 0])
|
||||
|
||||
#vb.addItem(viRoi)
|
||||
viUsrRoi=Marker([50, 120], [30, 20],mode=0)
|
||||
vb.addItem(viUsrRoi)
|
||||
#obj=Marker([250, 220], [30, 20],mode=1)
|
||||
#vb.addItem(obj)
|
||||
|
||||
vi=Grid( (120,-100), (200,150), (30,20),2)
|
||||
tr=QtGui.QTransform() # prepare ImageItem transformation:
|
||||
tr.setMatrix(1, -.1, 0,
|
||||
.2, 1, 0,
|
||||
10, 10, 1)
|
||||
vi.setTransform(tr) # assign transform
|
||||
#vi=Grid( (50,10), (200,150), (6,4))
|
||||
vb.addItem(vi) #vi= visual item
|
||||
|
||||
grp=pg.ItemGroup()
|
||||
@@ -811,11 +746,6 @@ if __name__=='__main__':
|
||||
fiducial=np.array(((18, 7), (25, 16), (70, 20)))
|
||||
path=gen_swissmx_points(ofs=(10, 5), width=200)
|
||||
vi=Path((120,100),path,fiducial,fidScl)
|
||||
#tr=QtGui.QTransform() # prepare ImageItem transformation:
|
||||
#tr.setMatrix(1, 0, 0,
|
||||
# 0, 1, 0,
|
||||
# 10, 10, 1)
|
||||
#vi.setTransform(tr) # assign transform
|
||||
vb.addItem(vi)
|
||||
|
||||
vi=FixTargetFrame((100,300),(100,100),tpl='test')
|
||||
@@ -833,9 +763,6 @@ if __name__=='__main__':
|
||||
viRoi=pg.ROI([-200, -200], [100, 80],movable=True, rotatable=True, resizable=True)
|
||||
|
||||
viRoi.addFreeHandle(pos=[.7, .5], axes=None, item=None, name=None, index=None) # rechteck , frei beweglich ??? verschwinden anch bewegung
|
||||
#viRoi.addRotateFreeHandle([.7, .5], [0, 0], axes=None, item=None, name=None, index=None) # kreis ??? verschwinden anch erstem gebrauch
|
||||
#viRoi.addRotateHandle([.7, .5], [0, 0], item=None, name=None, index=None) # kreis, nur rot
|
||||
#viRoi.addScaleHandle([.7, .5], [0, 0], axes=None, item=None, name=None, lockAspect=False, index=None) # raute scale x,y
|
||||
#viRoi.addScaleRotateHandle([0, .5], [1, .5], item=None, name=None, index=None) # kreis
|
||||
#viRoi.addTranslateHandle([.7, .5], axes=None, item=None, name=None, index=None) #quadrat
|
||||
vb.addItem(viRoi)
|
||||
@@ -846,9 +773,6 @@ if __name__=='__main__':
|
||||
childTree(vb)
|
||||
|
||||
w.scene().sigMouseClicked.connect(mouse_click_event)
|
||||
#viImg.sigImageChanged
|
||||
#print(vb.pos())
|
||||
#vb.setPos(50,50)
|
||||
|
||||
if (sys.flags.interactive!=1) or not hasattr(QtCore, 'PYQT_VERSION'):
|
||||
QtGui.QApplication.instance().exec_()
|
||||
|
||||
Reference in New Issue
Block a user