Skip to main content

A python package to assist visualization of image manipulation signatures

Project description

UNCONCEALED

A series of tools and Jupyter widgets for evaluating images, to aid in forensic investigation or reporting. Unconcealed allows you to apply a series of transformations to a directory of images, allowing you to visualize evidence of image splicing or duplication.

How it works

The primary feature of Unconcealed is a Jupyter widget that lets you select images, apply a mask, then access various transformation and visualization tools via tabs.

Widget mask display Widget noise display

The widget also displays a record of all parameters used during an evaluation, allowing for reproducibility of the work.

A specific feature captures and compares contours of image elements (eg Western Blot bands), revealing similarities that may be the result of image duplication.

Widget band similarity output

Installation

Getting started

The basic installation will need you to open your terminal and run:

pip install unconcealed

If you are using Python environments along with Jupyter, make sure that you install unconcealed into an environment accessible as a Jupyter kernel. You can read more about this from the IPython documentation.

Dependencies

To use the full functionality of unconcealed, you will need to separately install the following dependencies.

  • pdfimages (only if you need to use the image extraction feature)
  • Jupyter, Ipywidgets (if you want to use the interactive widget module)

Usage

  1. Start up your Jupyter notebook
  2. Note the directory/s where the images are located
    1. If you need to, you can use unconcealed.extract_from_pdf() to create a directory containing all images from a PDF, with the ability to filter based on image size. This requires separate installation of pdfimages.
  3. Import the widget module:
from unconcealed import widgets
  1. Prepare and load the widget:
load_evaluation_widget(IMAGE_DIRECTORY)
  1. Navigate through the tabs to perform various transformations of the selected image.
  2. Use the first tab to change directory, and select which image to analyze.

How to contribute

We welcome contributions! Even if it is just letting us know about an issue.

If you would like to contribute changes to the code:

  1. Clone repo and create a new branch:

$ git checkout https://github.com/oxpeter/unconcealed -b name_for_new_branch

  1. Make changes and test
  2. Submit Pull Request with comprehensive description of changes

License

This software has been developed under the MIT license

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

unconcealed-0.4.1.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

unconcealed-0.4.1-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file unconcealed-0.4.1.tar.gz.

File metadata

  • Download URL: unconcealed-0.4.1.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for unconcealed-0.4.1.tar.gz
Algorithm Hash digest
SHA256 5728b7be7ef72313f7acc279ed6d5843f813a1c32764a80a1fe277049c3ab2fb
MD5 e12b25c0d65ffbbd8dd6801d7d96c8e7
BLAKE2b-256 97536b3b07ab8bda94501f2c21090cce0ce07cc724dfeaad415ce11b4d546c1e

See more details on using hashes here.

File details

Details for the file unconcealed-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: unconcealed-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for unconcealed-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 77162df109b06e2e2bcaa3ad4c7d0543ca3b60113c0df478485382295a9d3b3b
MD5 6d3e263daccee8824e9801a88cf13b28
BLAKE2b-256 a78767cb0f7b48311cacb8ab1b581bb5d4acc6ad1c2e031a3088f3c6c5fe7081

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