Skip to main content

Optimal peanut butter and banana sandwiches

Project description

nannernest

Python package

A small package for optimizing banana coverage on peanut butter and banana sandwiches. See blog post for more info.

assets/perfect_sandwich.jpg

Installation

nannernest is generally pip installable. Due to some C dependencies with the nesting library that I use nest2D, along with an outstanding PR, I would recommend the following way to install everything:

First, make sure you have boost and cmake installed. If you are on Linux, then you may have cmake installed, and you can install boost with

sudo apt-get install libboost-all-dev 

I'm on a Mac, and I installed cmake with conda and boost with brew:

conda install cmake
brew install boost

Next, pip install my fork of nest2D:

pip install git+https://github.com/EthanRosenthal/nest2D.git@download-dependencies

Finally, pip install nannernest

pip install nannernest

Usage

Take a top-down picture that contains your banana and at least one slice of bread. Pass the image in via command line:

$ nannernest my_image.jpg

CLI Details

$ nannernest --help
Usage: nannernest [OPTIONS] IMAGE_PATH

Arguments:
  IMAGE_PATH  Image file which contains bread and banana  [required]

Options:
  --num-slices INTEGER            Total number of slices to cut the banana
                                  into. This number defines the slice
                                  thickness.  [default: 22]

  --mask-threshold FLOAT          Threshold of segmentation mask.  [default:
                                  0.6]

  --peel-scaler FLOAT             Fraction of slice that is assumed to belong
                                  to banana insides versus the peel.
                                  [default: 0.8]

  --ellipse-ratio FLOAT           Assumed ratio of minor axis to major axis of
                                  banana slice ellipses  [default: 0.85]

  --plot-segmentation / --no-plot-segmentation
                                  Whether or not to plot the segmentation
                                  masks  [default: False]

  --plot-slicing / --no-plot-slicing
                                  Whether or not to plot the slicing circle
                                  and skeleton  [default: False]

  --output TEXT                   Name of file to output  [default:
                                  perfect_sandwich.jpg]

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

nannernest-0.1.4.tar.gz (37.2 kB view details)

Uploaded Source

Built Distribution

nannernest-0.1.4-py3-none-any.whl (39.5 kB view details)

Uploaded Python 3

File details

Details for the file nannernest-0.1.4.tar.gz.

File metadata

  • Download URL: nannernest-0.1.4.tar.gz
  • Upload date:
  • Size: 37.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.5 Darwin/17.7.0

File hashes

Hashes for nannernest-0.1.4.tar.gz
Algorithm Hash digest
SHA256 7211101fe395075471ea888b4b5df44fbc97566001f23cde01b5b6f3537c8806
MD5 a6d051c06e8730b7680c4e6b325915ba
BLAKE2b-256 bec283a3178e818ab9386dd9efe5af65d950658106fa112c8f550d996c68d50f

See more details on using hashes here.

File details

Details for the file nannernest-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: nannernest-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 39.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.5 Darwin/17.7.0

File hashes

Hashes for nannernest-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 74d61f583934ee27cf9cee0ad088e2b2756da89d49857175930e3d45d5547a9f
MD5 97dff8b429849b06d31bafa37cc449d1
BLAKE2b-256 1cbff5c56164a6d0d16712275bf5fd1c0dc7562f3803474618ca6eb7e19d4590

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