tori29umai commited on
Commit
f77dc2b
โ€ข
1 Parent(s): 2dd8a35

Update utils/image_utils.py

Browse files
Files changed (1) hide show
  1. utils/image_utils.py +8 -7
utils/image_utils.py CHANGED
@@ -6,8 +6,8 @@ from rembg import remove
6
  def background_removal(input_image_path):
7
  """
8
  ๆŒ‡ๅฎšใ•ใ‚ŒใŸ็”ปๅƒใ‹ใ‚‰่ƒŒๆ™ฏใ‚’้™คๅŽปใ—ใ€้€ๆ˜Ž้ƒจๅˆ†ใ‚’็™ฝ่ƒŒๆ™ฏใซใƒ–ใƒฌใƒณใƒ‰ใ—ใฆ่ฟ”ใ™้–ขๆ•ฐใ€‚
9
- ๅฐใ•ใชใƒ‰ใƒƒใƒˆใ‚’็„ก่ฆ–ใ—ใฆใƒˆใƒชใƒŸใƒณใ‚ฐใ‚‚่กŒใ„ใพใ™ใ€‚
10
-
11
  Parameters:
12
  - input_image_path: ่ƒŒๆ™ฏ้™คๅŽปใ™ใ‚‹็”ปๅƒใฎใƒ‘ใ‚น
13
  """
@@ -18,21 +18,22 @@ def background_removal(input_image_path):
18
  return None
19
 
20
  area_threshold=100 # ็„ก่ฆ–ใ™ใ‚‹ๅฐใ•ใ„้ ˜ๅŸŸใฎใƒ”ใ‚ฏใ‚ปใƒซๆ•ฐใฎ้–พๅ€ค
21
-
22
  # ่ƒŒๆ™ฏ้™คๅŽปๅ‡ฆ็†
23
  result = remove(input_image)
24
 
25
- # ้€้Ž้ƒจๅˆ†ใฎใƒžใ‚นใ‚ฏใ‚’ไฝœๆˆใ—ใ€ๅฐใ•ใช้ ˜ๅŸŸใ‚’็„ก่ฆ–
26
  alpha = result.split()[-1] # ใ‚ขใƒซใƒ•ใ‚กใƒใƒฃใƒณใƒใƒซใ‚’ๅ–ๅพ—
27
  bbox = alpha.getbbox()
28
  if bbox:
29
- # bbox ๅ†…ใฎ้€้Žใ•ใ‚Œใฆใ„ใชใ„ใƒ”ใ‚ฏใ‚ปใƒซใ‚’ๆ•ฐใˆใ‚‹
30
  cropped_alpha = alpha.crop(bbox)
31
- non_transparent_pixels = sum(cropped_alpha.getdata()) // 255
32
 
33
  # ๆŒ‡ๅฎšใ—ใŸ้–พๅ€คไปฅไธŠใฎ้ ˜ๅŸŸใŒใ‚ใ‚‹ๅ ดๅˆใฎใฟใƒˆใƒชใƒŸใƒณใ‚ฐ
34
- if non_transparent_pixels >= area_threshold:
35
  result = result.crop(bbox)
 
 
36
 
37
  # ็ตๆžœใ‚’ไธ€ๆ™‚ใƒ•ใ‚กใ‚คใƒซใซไฟๅญ˜
38
  result_path = "tmp.png"
 
6
  def background_removal(input_image_path):
7
  """
8
  ๆŒ‡ๅฎšใ•ใ‚ŒใŸ็”ปๅƒใ‹ใ‚‰่ƒŒๆ™ฏใ‚’้™คๅŽปใ—ใ€้€ๆ˜Ž้ƒจๅˆ†ใ‚’็™ฝ่ƒŒๆ™ฏใซใƒ–ใƒฌใƒณใƒ‰ใ—ใฆ่ฟ”ใ™้–ขๆ•ฐใ€‚
9
+ ๅฐใ•ใชใƒ‰ใƒƒใƒˆใ‚„ๅฐใ•ใ„ๅŠ้€ๆ˜Ž้ ˜ๅŸŸใ‚‚็„ก่ฆ–ใ—ใฆใƒˆใƒชใƒŸใƒณใ‚ฐใ‚’่กŒใ„ใพใ™ใ€‚
10
+
11
  Parameters:
12
  - input_image_path: ่ƒŒๆ™ฏ้™คๅŽปใ™ใ‚‹็”ปๅƒใฎใƒ‘ใ‚น
13
  """
 
18
  return None
19
 
20
  area_threshold=100 # ็„ก่ฆ–ใ™ใ‚‹ๅฐใ•ใ„้ ˜ๅŸŸใฎใƒ”ใ‚ฏใ‚ปใƒซๆ•ฐใฎ้–พๅ€ค
 
21
  # ่ƒŒๆ™ฏ้™คๅŽปๅ‡ฆ็†
22
  result = remove(input_image)
23
 
24
+ # ใ‚ขใƒซใƒ•ใ‚กใƒใƒฃใƒณใƒใƒซๅ–ๅพ—
25
  alpha = result.split()[-1] # ใ‚ขใƒซใƒ•ใ‚กใƒใƒฃใƒณใƒใƒซใ‚’ๅ–ๅพ—
26
  bbox = alpha.getbbox()
27
  if bbox:
28
+ # bbox ๅ†…ใฎๅฎŒๅ…จ้€้Žใงใชใ„ใƒ”ใ‚ฏใ‚ปใƒซใ‚’ใ‚ซใ‚ฆใƒณใƒˆ
29
  cropped_alpha = alpha.crop(bbox)
30
+ non_transparent_pixel_count = sum(1 for pixel in cropped_alpha.getdata() if pixel > 0)
31
 
32
  # ๆŒ‡ๅฎšใ—ใŸ้–พๅ€คไปฅไธŠใฎ้ ˜ๅŸŸใŒใ‚ใ‚‹ๅ ดๅˆใฎใฟใƒˆใƒชใƒŸใƒณใ‚ฐ
33
+ if non_transparent_pixel_count >= area_threshold:
34
  result = result.crop(bbox)
35
+ else:
36
+ print("Small transparent region ignored")
37
 
38
  # ็ตๆžœใ‚’ไธ€ๆ™‚ใƒ•ใ‚กใ‚คใƒซใซไฟๅญ˜
39
  result_path = "tmp.png"