An open API service indexing awesome lists of open source software.

https://github.com/cjpatton/salamander

Salamander is an image processing application based on OpenCV for filtering field cameras. These programs detect when targets appear and filters the video feed as long as they remain in frame.
https://github.com/cjpatton/salamander

Last synced: 12 months ago
JSON representation

Salamander is an image processing application based on OpenCV for filtering field cameras. These programs detect when targets appear and filters the video feed as long as they remain in frame.

Awesome Lists containing this project

README

          

Christopher Patton
John Muir Institute for the Environment
University of California, Davis

This directory contains the source code for the Salamander image processing
project. The purpose of this code is to detect and track a target in a raw
video stream. This applies to surveillance footage of animals in their natural
habitats, eg. mice, rats, or salamanders.

Files
-----
segment.cpp -- current top level program.
detect.cpp -- working on more sophisticated detetion scheme
filter.cpp -- apply filters to a series of images
binary_threshold.cpp -- binthresh
binary_morphology.cpp -- binmorph
CMakeLists.txt -- for cmake
salamander.{cpp,h} -- library implementation of the image processing
{blobs,chunk,files}.{cpp,h} -- various data structures for detection and video
segmenting
ex -- some example footage for trying these programs

Installation
------------
This code is written in C++ for OpenCV (opencv.org).

$ mkdir build && cd build
$ cmake ../
$ make
$ sudo make install

This will produce a shared library called "libsalamander.so" as well as
four executable programs. The purpose of these programs is described in detail
in the code:

binthresh,
binmorph,
segment,
filter, and
detect.

Usage
-----
All five programs take a list of JPEG files corresponding to a video stream
on standard input. binmoroph and binthresh apply image processing filters
and output the result.

$ ls *.jpg > raw
$ filter -t 20 60 -m 1 10 -s 2 < raw

The first two arguments refer to the erosion and dilation factors (binary
morphology) respectively. The second two are optional and specify the range for
the binary threshold. The other programs can be run similarly:

$ binthresh 40 60 < raw
$ binmorph 2 20 < raw