Skip to content

NLeSC/SalientDetector-python

Repository files navigation

Python software for image processing

Build Status Codacy Badge Codacy Badge DOI

This folder contains a Python implementation of the Salient Region Detector code as part of the image processing part of eStep. The software conforms with the eStep standards.

The original MATLAB implementation can be found at this repository

Documentation can be found on Read the Docs.

The repository contains the following sub-folders:

Notebooks

Several iPython notebooks testing and illustrating major functionality.

salientregions

The module for salient region detection functionality.

tests

Unit tests for the code in salientregions.

Installation

Prerequisites

  • Python 2.7 or 3.5
  • pip (8.1.2)

Installing the package (via pip)

pip install salientregions

Afterwards you can import it in Python:

import salientregions as sr

Installing the package manually

Clone or download repo. Install requirements from requirements.txt file:

pip install -r requirements.txt

Install the package itself:

pip install .

To perform tests:

nosetests test

Manually install OpenCV

OpenCV should be installed via pip, but if you have an older version of pip, you might need to install it manually. There is two ways to install OpenCV:

  • If you're using Conda, you can install OpenCV with the following command:

conda install -c https://conda.anaconda.org/menpo opencv3

Getting started

The source code documentation can be found here

This code makes heavily use of the OpenCV library, so in order to understand how the code works, it helps to have a look at the OpenCV Documentation.

Images

In OpenCV, images are represented as numpy arrays. Grayscale images are represented by a 2-dimensional array. Color images have a third dimension for the color channel. The Salient Region Detector has a few simplifying assumptions:

  • Color images have BGR channels
  • Images are assumed to be 8-bit. This is also the case for binary images, so they only have values of 0 and 255.

Detector object

The complete functionality of the salient region detectors are found in the Detector object. The SalientDetector implements DMSR detection, and MSSRDetector implements MSSR detection (see referred papers for more information about these algorithms). An example of how to use the Detector can be found in this iPython Notebook.

Contributing

If you want to contribute to the code, please have a look at the eStep standarts.

We use numpy-style code documentation.

References

Ranguelova, E. A Salient Region Detector for Structured Images. Proceedings of International Conference on Computer Systems and Applications (AICCSA), 2016, p.1–8, DOI: 10.1109/AICCSA.2016.7945643