various fixes

This commit is contained in:
2022-09-16 12:25:36 +02:00
parent 6a7b5ab91e
commit ba4f5feecb
7 changed files with 141 additions and 87 deletions

View File

@@ -69,13 +69,26 @@ class fiducial(QtGui.QMainWindow):
self._imgLst=imgLst=sorted(glob.glob("../scratch/fiducial/*.png"))
self._metrics=mtr=np.ndarray(shape=(len(imgLst), 5))
mtr[:]=0
self._sld=sld=QtGui.QSlider(QtCore.Qt.Horizontal)
sld.setMinimum(0)
sld.setMaximum(len(imgLst)-1)
sld.setValue(0)
sld.setTickPosition(QtGui.QSlider.TicksBelow)
sld.setTickInterval(1)
sld.valueChanged.connect(self.cb_sld_change)
self._sldImgIdx=sld1=QtGui.QSlider(QtCore.Qt.Horizontal)
sld1.setMinimum(0)
sld1.setMaximum(len(imgLst)-1)
sld1.setValue(0)
sld1.setTickPosition(QtGui.QSlider.TicksBelow)
sld1.setTickInterval(1)
sld1.valueChanged.connect(self.cb_sld_change)
self._sldTplSz=sld2=QtGui.QSlider(QtCore.Qt.Horizontal)
sld2.setMinimum(0)
sld2.setMaximum(300)
sld2.setValue(90)
sld2.valueChanged.connect(self.cb_sld_change)
self._sldTplBrd=sld3=QtGui.QSlider(QtCore.Qt.Horizontal)
sld3.setMinimum(3)
sld3.setMaximum(50)
sld3.setValue(20)
sld3.valueChanged.connect(self.cb_sld_change)
self._imv1=imv1=pg.ImageView()
self._imv2=imv2=pg.ImageView()
@@ -91,10 +104,12 @@ class fiducial(QtGui.QMainWindow):
pw.resize(100,100)
pw.setMaximumSize(2000,200)
l.addWidget(sld, 0, 0)
l.addWidget(imv1, 1, 0)
l.addWidget(imv2, 2, 0)
l.addWidget(pw, 3, 0)
l.addWidget(sld1, 0, 0)
l.addWidget(sld2, 1, 0)
l.addWidget(sld3, 2, 0)
l.addWidget(imv1, 3, 0)
l.addWidget(imv2, 4, 0)
l.addWidget(pw, 5, 0)
## Display the data
self.cb_sld_change(0,True)
@@ -108,7 +123,7 @@ class fiducial(QtGui.QMainWindow):
self._imv2.setLevels(0, 1)
def cb_sld_change(self,val,auto=False):
i=self._sld.value()
i=self._sldImgIdx.value()
_log.debug(f'{i}')
fn= self._imgLst[i]
img=PIL.Image.open(fn)
@@ -134,15 +149,17 @@ class fiducial(QtGui.QMainWindow):
#fid=np.ones((250,250),dtype=np.uint8)*255
#fid[20:230,20:230]=0
sz=(90, 90); brd=(20, 20) # zoom 001
#sz=(130, 130); brd=(20, 20) # zoom 200
#sz=(210, 210); brd=(20, 20) # zoom 400
#sz=( 84, 84); brd=( 7, 7) # zoom 001
#sz=(128, 128); brd=( 9, 9) # zoom 200
#sz=(200, 200); brd=(13, 13) # zoom 400
v=self._sldTplSz.value(); sz=(v,v)
v=self._sldTplBrd.value(); brd=(v,v)
fid=np.ones((sz[1]+2*brd[1],sz[0]+2*brd[0]),dtype=np.uint8)*255
fid[brd[1]:sz[1]+brd[1],brd[0]:sz[0]+brd[0]]=0
mask=np.ones((sz[1]+2*brd[1],sz[0]+2*brd[0]),dtype=np.uint8)*255
mask[2*brd[1]:sz[1],2*brd[0]:sz[0]]=0
#https://docs.opencv.org/4.5.2/d4/dc6/tutorial_py_template_matching.html
#res = cv.matchTemplate(img,fid,cv.TM_CCORR_NORMED )
res = cv.matchTemplate(img,fid,cv.TM_CCORR_NORMED,mask=mask)
@@ -177,6 +194,11 @@ class fiducial(QtGui.QMainWindow):
self._imv1.setImage(img,autoRange=auto,autoLevels=auto,autoHistogramRange=auto)
self._imv2.setImage(res,autoRange=auto,autoLevels=auto,autoHistogramRange=auto)
pos=mtr.mean(0)[::-1]+(fw2,fh2)
print(fid)
print(mask)
print(corr)
print(mtr)
print(f'TplSz:{sz} TplBrd:{brd}')
_log.debug(f'position: {pos} correlation:{corr.mean()}')