예제 #1
0
def floodfill():
    display(src_image, "source_image")
    seedPoint = (0, 0)
    cv.FloodFill(src_image, seedPoint, (0, 255, 0), (2, 10, 50), (2, 10, 50),
                 4, None)
    display(src_image, "Destination image")
    cv.WaitKey(0)
예제 #2
0
def on_mouse(event, x, y, flags, param):

    if (not color_img):
        return

    if event == cv.CV_EVENT_LBUTTONDOWN:
        my_mask = None
        seed = (x, y)
        if ffill_case == 0:
            lo = up = 0
            flags = connectivity + (new_mask_val << 8)
        else:
            lo = lo_diff
            up = up_diff
            flags = connectivity + (
                new_mask_val << 8) + cv.CV_FLOODFILL_FIXED_RANGE
        b = random.randint(0, 255)
        g = random.randint(0, 255)
        r = random.randint(0, 255)

        if (is_mask):
            my_mask = mask
            cv.Threshold(mask, mask, 1, 128, cv.CV_THRESH_BINARY)

        if (is_color):

            color = cv.CV_RGB(r, g, b)
            comp = cv.FloodFill(color_img, seed, color, cv.CV_RGB(lo, lo, lo),
                                cv.CV_RGB(up, up, up), flags, my_mask)
            cv.ShowImage("image", color_img)

        else:

            brightness = cv.RealScalar((r * 2 + g * 7 + b + 5) / 10)
            comp = cv.FloodFill(gray_img, seed, brightness, cv.RealScalar(lo),
                                cv.RealScalar(up), flags, my_mask)
            cv.ShowImage("image", gray_img)

        print "%g pixels were repainted" % comp[0]

        if (is_mask):
            cv.ShowImage("mask", mask)