Skip to main content

Live tuning of image processing algorithms

Project description

IMAGETUNE

imagetune is a simple GUI to interactively tune image-processing parameters.

Here is a simple script to make a binary version of an image:

from skimage.filters import gaussian
from skimage import data


def threshold(im, thres_val):
    return im > thres_val


def preprocessing(im):
    bg = gaussian(im, 10)
    fg = im - bg
    segmented = threshold(fg, 0.1)
    return segmented


im = data.coins()
result = preprocessing(im)

The script depends on parameters, sigma=10 for Gaussian filtering and thres_val=0.1 for the thresholding. In order to tune these live, simply wrap those functions in tune:

from skimage.filters import gaussian
from skimage import data
+from imagetune import tune, tuneui


def threshold(im, thres_val):
    return im > thres_val


def preprocessing(im):
-    bg = gaussian(im, 10)
+    bg = tune(gaussian)(im, 10)
     fg = im - bg
-    segmented = threshold(fg, 0.1)
+    segmented = tune(threshold)(fg, 0.1)
    return segmented


im = data.coins()
+tuneui(preprocessing, im)

This launches a small window in which the parameters are tunable live:

ImageTune

You can also decorate your functions instead

+@tune
def threshold(im, thres_val):
    return im > thres_val

Note that the function still works as normal:

output = preprocessing(im)

Only when you run tuneui(preprocessing, im) does it behave differently.

Installation

Install directly with pip:

pip install https://github.com/juliusbierk/imagetune/archive/refs/heads/main.zip

Function requirements

All tunable functions are asssumed to take an image as its input and return an image as its output.

Choosing parameters

Given a function:

def adjust(im, alpha, gamma):
    return alpha * im**gamma

The decorator tune will per standard assume you wish to tune the first parameter (alpha). You can change this by specifying argnames:

tune(adjust, argnames='gamma')

or argnums:

tune(adjust, argnums=2)

The behavior of the above is identical. You can also tune both parameters, by either

tune(adjust, argnames=('alpha', 'gamma'))

or

tune(adjust, argnums=(1, 2))

Misc

To overwrite function names in the UI, simply pass along a name:

bg = tune(gaussian, name='blur')(im, 10)

You can also choose a min, max of the parameter bar:

bg = tune(gaussian, min=0, max=300)(im, 10)

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

imagetune-0.1.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imagetune-0.1.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file imagetune-0.1.0.tar.gz.

File metadata

  • Download URL: imagetune-0.1.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for imagetune-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cc5d70b8d5ec76154484d02da683466093109df6506f5eb4969bad7012afbbb5
MD5 286e2d8f0458d27312361c0a37aa1b2a
BLAKE2b-256 9d9bbf0c646c1caa10218fedf873dc34c1c27bf9ae734e26b9786f0140300131

See more details on using hashes here.

Provenance

The following attestation bundles were made for imagetune-0.1.0.tar.gz:

Publisher: publish.yml on juliusbierk/imagetune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file imagetune-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: imagetune-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for imagetune-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 974610ceb86fb28eb4d0c5ca13073d4038199039467d1fd6b9a1a6289f1fa184
MD5 13a8bb45273d34eb16490753375e1f6a
BLAKE2b-256 1b678062a25a58b9d2da4ca39ecb198c999e72db45f054eabca50e415982d510

See more details on using hashes here.

Provenance

The following attestation bundles were made for imagetune-0.1.0-py3-none-any.whl:

Publisher: publish.yml on juliusbierk/imagetune

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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