fix #491
19
rembg/bg.py
@ -74,6 +74,12 @@ def alpha_matting_cutout(
|
||||
|
||||
|
||||
def naive_cutout(img: PILImage, mask: PILImage) -> PILImage:
|
||||
empty = Image.new("RGBA", (img.size), 0)
|
||||
cutout = Image.composite(img, empty, mask)
|
||||
return cutout
|
||||
|
||||
|
||||
def putalpha_cutout(img: PILImage, mask: PILImage) -> PILImage:
|
||||
img.putalpha(mask)
|
||||
return img
|
||||
|
||||
@ -147,6 +153,8 @@ def remove(
|
||||
else:
|
||||
raise ValueError("Input type {} is not supported.".format(type(data)))
|
||||
|
||||
putalpha = kwargs.pop("putalpha", False)
|
||||
|
||||
# Fix image orientation
|
||||
img = fix_image_orientation(img)
|
||||
|
||||
@ -173,10 +181,15 @@ def remove(
|
||||
alpha_matting_erode_size,
|
||||
)
|
||||
except ValueError:
|
||||
cutout = naive_cutout(img, mask)
|
||||
|
||||
if putalpha:
|
||||
cutout = putalpha_cutout(img, mask)
|
||||
else:
|
||||
cutout = naive_cutout(img, mask)
|
||||
else:
|
||||
cutout = naive_cutout(img, mask)
|
||||
if putalpha:
|
||||
cutout = putalpha_cutout(img, mask)
|
||||
else:
|
||||
cutout = naive_cutout(img, mask)
|
||||
|
||||
cutouts.append(cutout)
|
||||
|
||||
|
Before Width: | Height: | Size: 744 KiB After Width: | Height: | Size: 215 KiB |
Before Width: | Height: | Size: 735 KiB After Width: | Height: | Size: 194 KiB |
Before Width: | Height: | Size: 723 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 734 KiB After Width: | Height: | Size: 180 KiB |
Before Width: | Height: | Size: 732 KiB After Width: | Height: | Size: 181 KiB |
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 740 KiB After Width: | Height: | Size: 196 KiB |
Before Width: | Height: | Size: 746 KiB After Width: | Height: | Size: 206 KiB |
Before Width: | Height: | Size: 356 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 350 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 342 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 348 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 347 KiB After Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 345 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 349 KiB After Width: | Height: | Size: 83 KiB |
Before Width: | Height: | Size: 1013 KiB After Width: | Height: | Size: 392 KiB |
Before Width: | Height: | Size: 1013 KiB After Width: | Height: | Size: 394 KiB |
Before Width: | Height: | Size: 997 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 1021 KiB After Width: | Height: | Size: 399 KiB |
Before Width: | Height: | Size: 1017 KiB After Width: | Height: | Size: 398 KiB |
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 1015 KiB After Width: | Height: | Size: 405 KiB |
Before Width: | Height: | Size: 1020 KiB After Width: | Height: | Size: 408 KiB |