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)
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)