cat > /workspace/scratch/pos.py <<'PY'
exec(open('/workspace/scratch/testseg.py').read().split('for s,src in sources.items():')[0])
from scipy.ndimage import binary_fill_holes
for s in ['HH-1206','HH-2203','HH-2342','HH-5593','HH-7158','HH-8285','HH-9328','HH-9340','HH-9374']:
 a=tifffile.imread('/workspace/input/'+sources[s]).astype('float32')/65535;b=tifffile.imread('/workspace/input/charts/'+s+'_chart.tif').astype('float32')/65535
 aa=cv2.GaussianBlur(a,(0,0),.5);bb=cv2.GaussianBlur(b,(0,0),.5);d=(aa-bb).mean(2)
 mask=(d>.012).astype('uint8');x0,y0,x1,y1=limits[s];reg=np.zeros(mask.shape,'uint8');reg[y0:y1,x0:x1]=1;mask*=reg
 cx0,cy0,cx1,cy1=boxes[s];mask[cy0-15:cy1+15,cx0-15:cx1+15]=1
 n,lab,stats,ctr=cv2.connectedComponentsWithStats(mask,8);mask=(lab==1+np.argmax(stats[1:,4])).astype('uint8');mask=binary_fill_holes(mask).astype('uint8')
 cv2.imwrite('/workspace/scratch/seg/'+s+'_pos.png',mask*255)
 vis=a*.6+np.array([0,0.9,0.8])*mask[:,:,None]*.4
 Image.fromarray((np.clip(vis,0,1)*255).astype('uint8')).resize((1200,800)).save('/workspace/scratch/seg/'+s+'_pos.jpg')
PY
python /workspace/scratch/pos.py