Skip to main content

Generate thumbnails of detected faces in images using Python.

Project description

FaceCropThumb

FaceCropThumb is a Python package for generating thumbnails of detected faces in images. It utilizes the MTCNN (Multi-Task Cascaded Convolutional Neural Network) for accurate face detection and OpenCV for image processing.

All documentation is in the “docs” directory and online at https://facecrop-thumb.readthedocs.io/en/stable/. If you’re just getting started, here’s how we recommend you read the docs:

Features

  • Detect faces in images using the MTCNN model
  • Crop detected faces with a configurable margin
  • Generate square thumbnails of detected faces
  • Option to resize the entire image if no face is detected or face detection is skipped
  • Command-line utility for easy usage

Quick Installation

You can install FaceCropThumb via pip:

pip install facecropthumb

Quick Usage

facecropthumb <image_path> [-d/--dir <output_directory>] [-m/--margin <margin_size>] [-F/--no-face] [-S/--skip-face] [-a/--all]

  • <image_path>: Path to the input image file.
  • -d/--dir <output_directory>: Directory to store the output thumbnail. Default is the current directory.
  • -m/--margin <margin_size>: Margin around the detected face. Default is 50 pixels.
  • -F/--no-face: Skip face detection and resize the whole image if no face is detected.
  • -S/--skip-face: Skip face detection and resize the whole image.
  • -a/--all: Process all images in the specified directory. If no directory is provided, it processes images in the current directory.
  • -v/--version: Show installed version.
  • -h/--help: Show help.

Example:

facecropthumb input_image.jpg -d output_directory -m 30 -F

This command will generate a thumbnail of the detected face in input_image.jpg, with a margin of 30 pixels, and if no face is detected, it will resize the whole image to a square of 74 x Y pixels (~approx).

Development Documentation

DISCLAIMER: This documentation is for the contributers of FaceCropThumb, not for general package users.

Firstly install dev dependencies from requirements.txt file

Usage

To run and test the package, use python -m facecrop-thumb <args>

Build Docs

You can see the production build docs in docs/build/index.html

Update the documentation at any cost after any change in feature

Run this to watch the docs/ folder while you're making documentation changes

watchmedo shell-command --patterns="*.rst;conf.py;_templates/*" --recursive --command='sphinx-build -b html docs docs/_build' docs

Release

After a successful change in the package, it's time to publish it officially.

  • Update the version in facecrop_thumb/version.py

  • Create a new release on release page. (This will automatically trigger GitHub actions to release a new version on PYPI)

That's it, the newer version will be available to everyone.

But if you want to publish a version by yourself, you can use following command:

  • python setup.py sdist

  • twine upload dist/*

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

facecrop-thumb-1.0.6.tar.gz (5.6 kB view details)

Uploaded Source

File details

Details for the file facecrop-thumb-1.0.6.tar.gz.

File metadata

  • Download URL: facecrop-thumb-1.0.6.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.1

File hashes

Hashes for facecrop-thumb-1.0.6.tar.gz
Algorithm Hash digest
SHA256 92b90ece45838a37329b453661e903650538070a1b196682e45ab2f830b68ee3
MD5 4878d42ed98e4b219f93b8c496ceb8ac
BLAKE2b-256 175b3129ad4f149741920fe8a8b8e2995fcb103ad5160ace3b84fb29f4b5d1c2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page