示例#1
0
    dImgGC = cl.Image(context,
        cl.mem_flags.READ_ONLY,
        cl.ImageFormat(cl.channel_order.RGBA, cl.channel_type.UNSIGNED_INT8),
        dim
    )
    cl.enqueue_copy(queue, dImgGC, hImg, origin=(0,0), region=dim)

    dImg = Buffer2D(context, cm.READ_WRITE | cm.COPY_HOST_PTR, hostbuf=hImg)

    dStrokes = Buffer2D(context, cm.READ_WRITE, dim, dtype=np.uint8)

    growCut = GrowCut(context, devices, dImgGC, GrowCut.NEIGHBOURHOOD.VON_NEUMANN, GrowCut.WEIGHT_POW2)

    brush = Brush(context, devices, growCut.dLabelsIn)
    brush.setLabel(TRI_BG)

    iteration = 0
    refresh = 100

    def next():
        global iteration

        growCut.evolve(1)
        sm.processTrimap(dStrokes, growCut.dLabelsOut, growCut.dStrengthIn, 0.95)

        if growCut.isComplete:
            window.updateCanvas()
            timer.stop()

#            sm.processTrimap(growCut.dLabelsIn, growCut.dLabelsOut, growCut.dStrengthIn, 0.985)