cat > /workspace/scratch/rosewellfix.py <<'PY'
import sys;sys.path.insert(0,'/workspace/scratch')
from localfixes import boxes
import cv2,numpy as np
from scipy import ndimage as ndi
s='HH-7186';p='/workspace/scratch/finalmasks/'+s+'.png';m=cv2.imread(p,0)>127;m=m.astype('uint8')*255;ox,oy=boxes[s][:2]
for pp in [
[[321,944],[580,944],[576,961],[570,975],[559,988],[542,999],[520,1007],[490,1014],[453,1018],[420,1017],[390,1014],[365,1007],[343,997],[330,985],[322,970]],
[[447,147],[452,147],[452,617],[446,617]]]:cv2.fillPoly(m,[np.array(pp,'int32')+[ox,oy]],255)
reg=np.zeros(m.shape,'uint8')
for pp in [
[[86,737],[194,737],[236,858],[58,858]],[[204,745],[282,745],[293,780],[270,858],[240,858]],
[[309,730],[432,730],[476,860],[276,860]],[[472,748],[585,748],[613,860],[480,860]],
[[611,731],[722,731],[764,860],[578,860]],[[735,742],[788,742],[819,860],[767,860]]]:cv2.fillPoly(reg,[np.array(pp,'int32')+[ox,oy]],1)
fill=ndi.binary_fill_holes(m>127);m[fill&(reg>0)]=255
cv2.imwrite(p,cv2.GaussianBlur(m,(3,3),.4))
PY
python /workspace/scratch/rosewellfix.py