def iabshow(f1, f2=None, f3=None, factor=17): from ia870 import iabinary, iaframe, iadil, iaunion from ia870 import iasedisk, iaserot, iasecross, iasesum assert f1.dtype == bool, 'f1 must be boolean image' factor = max(factor, 9) hfactor = factor // 2 if size(f1.shape) == 1: f1 = f1[newaxis, :] if f2 != None: f2 = f2[newaxis, :] if f3 != None: f3 = f3[newaxis, :] bz = zeros(factor * array(f1.shape)).astype(bool) b0 = asarray(bz) b0[hfactor::factor, hfactor::factor] = f1 fr1 = iaframe(zeros((factor, factor), bool)) fr1 = iadil(b0, fr1) if f2 is not None: assert f1.shape == f2.shape, 'f1 and f2 must have same shape' b1 = asarray(bz) b1[hfactor::factor, hfactor::factor] = f2 fr2 = iadil(b1, iasedisk(hfactor - 4)) fr1 = iaunion(fr1, fr2) if f3 is not None: assert f1.shape == f3.shape, 'f1 and f3 must have same shape' bz[hfactor::factor, hfactor::factor] = f3 fr3 = iadil(bz, iasesum(iaserot(iasecross(1), 45), hfactor - 1)) fr1 = iaunion(fr1, fr3) return fr1
def iagradm(f, Bdil=None, Bero=None): from ia870 import iasubm,iadil,iaero,iasecross if Bdil is None: Bdil = iasecross() if Bero is None: Bero = iasecross() y = iasubm( iadil(f,Bdil),iaero(f,Bero)) return y
def iaclose(f, b=None): from ia870 import iaero, iadil, iasecross if b is None: b = iasecross() y = iaero(iadil(f, b), b) return y
def ianshow(X, X1=None, X2=None, X3=None, X4=None, X5=None, X6=None): x = timg(X) x1, x2, x3, x4, x5, x6 = None, None, None, None, None, None if X1 is not None: x1 = ia.iadil(ia.ianeg(timg(X1))) if X2 is not None: x2 = ia.iadil(ia.ianeg(timg(X2))) if X3 is not None: x3 = ia.iadil(ia.ianeg(timg(X3))) if X4 is not None: x4 = ia.iadil(ia.ianeg(timg(X4))) if X5 is not None: x5 = ia.iadil(ia.ianeg(timg(X5))) if X6 is not None: x6 = ia.iadil(ia.ianeg(timg(X6))) return ia.iagshow(x, x1, x2, x3, x4, x5, x6)
def iaero(f, b=None): from ia870 import ianeg, iadil, iasereflect, iasecross if b is None: b = iasecross() y = ianeg(iadil(ianeg(f), iasereflect(b))) return y