{"library":"pymatting","title":"PyMatting","description":"PyMatting is a Python library for alpha matting, a fundamental technique in image processing and computer vision used to accurately extract foreground objects from images. It offers various implementations for alpha matting and foreground estimation methods, leveraging CPU, CUDA, and OpenCL for performance. The current version is 1.1.15, with active development leading to periodic releases for bug fixes and feature enhancements.","language":"python","status":"active","last_verified":"Thu May 14","install":{"commands":["pip install pymatting"],"cli":null},"imports":["from pymatting import cutout","from pymatting import estimate_alpha_cf","from pymatting import estimate_foreground_ml"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import numpy as np\nfrom PIL import Image\nfrom pymatting import cutout\nimport os\n\n# Create dummy image and trimap files for demonstration\ndef create_dummy_image(path, size=(64, 64), color=(255, 0, 0)):\n    img = Image.new('RGB', size, color)\n    img.save(path)\n\ndef create_dummy_trimap(path, size=(64, 64)):\n    # A simple trimap: top-left foreground (1.0), bottom-right background (0.0), middle unknown (0.5)\n    trimap_data = np.zeros(size, dtype=np.float64)\n    trimap_data[:size[0]//2, :size[1]//2] = 1.0 # Foreground\n    trimap_data[size[0]//2:, size[1]//2:] = 0.0 # Background\n    trimap_data[size[0]//4:size[0]*3//4, size[1]//4:size[1]*3//4] = 0.5 # Unknown\n    \n    # Convert to PIL image and save (e.g., as grayscale PNG)\n    trimap_img = Image.fromarray((trimap_data * 255).astype(np.uint8), mode='L')\n    trimap_img.save(path)\n\ninput_image_path = \"dummy_input.png\"\ninput_trimap_path = \"dummy_trimap.png\"\noutput_cutout_path = \"dummy_cutout.png\"\n\ncreate_dummy_image(input_image_path, color=(100, 150, 200))\ncreate_dummy_trimap(input_trimap_path)\n\nprint(f\"Processing image: {input_image_path} with trimap: {input_trimap_path}\")\n\ntry:\n    # Perform the cutout operation\n    # Note: The first import/call might be slow due to Numba compilation\n    cutout(\n        input_image_path,\n        input_trimap_path,\n        output_cutout_path\n    )\n    print(f\"Cutout saved to: {output_cutout_path}\")\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\nfinally:\n    # Clean up dummy files\n    if os.path.exists(input_image_path):\n        os.remove(input_image_path)\n    if os.path.exists(input_trimap_path):\n        os.remove(input_trimap_path)\n    # Keep output_cutout_path for verification if successful\n    # if os.path.exists(output_cutout_path):\n    #     os.remove(output_cutout_path)\n","lang":"python","description":"This quickstart demonstrates the simplest way to use PyMatting: the `cutout` function. It takes an input image and a trimap, then generates a new image with the foreground extracted. The example includes creating dummy image and trimap files for immediate runnable demonstration. In a real-world scenario, you would replace these with paths to your actual image and trimap files.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-14","installed_version":"1.1.15","pypi_latest":"1.1.15","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":25,"avg_install_s":11.3,"avg_import_s":94.69,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pymatting","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":11.2,"import_time_s":100.72,"mem_mb":107.3,"disk_size":"433M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pymatting","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":10.7,"import_time_s":101.2,"mem_mb":96.8,"disk_size":"455M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pymatting","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":11,"import_time_s":90.21,"mem_mb":94.4,"disk_size":"439M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pymatting","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":11.4,"import_time_s":85.16,"mem_mb":102.2,"disk_size":"438M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pymatting","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":12.4,"import_time_s":96.17,"mem_mb":100.3,"disk_size":"407M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pymatting","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}