JeVoisBase  1.21
JeVois Smart Embedded Machine Vision Toolkit Base Modules
Share this page:
Loading...
Searching...
No Matches
SuperPixel.H
Go to the documentation of this file.
1// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2//
3// JeVois Smart Embedded Machine Vision Toolkit - Copyright (C) 2016 by Laurent Itti, the University of Southern
4// California (USC), and iLab at USC. See http://iLab.usc.edu and http://jevois.org for information about this project.
5//
6// This file is part of the JeVois Smart Embedded Machine Vision Toolkit. This program is free software; you can
7// redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software
8// Foundation, version 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
9// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
10// License for more details. You should have received a copy of the GNU General Public License along with this program;
11// if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
12//
13// Contact information: Laurent Itti - 3641 Watt Way, HNB-07A - Los Angeles, CA 90089-2520 - USA.
14// Tel: +1 213 740 3527 - itti@pollux.usc.edu - http://iLab.usc.edu - http://jevois.org
15// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
16/*! \file */
17
18#pragma once
19
21#include <jevois/Types/Enum.H>
22
23#include <opencv2/core/core.hpp>
24#include <opencv2/imgproc/imgproc.hpp>
25
26namespace superpixel
27{
28 static jevois::ParameterCategory const ParamCateg("SuperPixel Options");
29
30 //! Enum for parameter \relates SuperPixel
31 JEVOIS_DEFINE_ENUM_CLASS(Algo, (SLIC) (SLICO) (SEEDS) ); // could later also support LSC
32
33 //! Parameter \relates SuperPixel
34 JEVOIS_DECLARE_PARAMETER(algo, Algo, "Algorithm variant to use", Algo::SLICO, Algo_Values, ParamCateg);
35
36 //! Parameter \relates SuperPixel
37 JEVOIS_DECLARE_PARAMETER(regionsize, int, "SLIC Region size", 30, ParamCateg);
38
39 //! Parameter \relates SuperPixel
40 JEVOIS_DECLARE_PARAMETER(numpix, int, "Number of SEEDS superpixels", 200, ParamCateg);
41
42 //! Parameter \relates SuperPixel
43 JEVOIS_DECLARE_PARAMETER(iterations, int, "Number of iterations", 6, jevois::Range<int>(1, 100), ParamCateg);
44
45 //! Enum for parameter \relates SuperPixel
46 JEVOIS_DEFINE_ENUM_CLASS(OutType, (Labels) (Contours) );
47
48 //! Parameter \relates SuperPixel
49 JEVOIS_DECLARE_PARAMETER(output, OutType, "Output labels or demo grayscale input image with superimposed contours",
50 OutType::Contours, OutType_Values, ParamCateg);
51} // namespace superpixel
52
53//! Superpixel image segmentation from OpenCV
54/*! See tutorial at http://docs.opencv.org/3.2.0/df/d6c/group__ximgproc__superpixel.html
55 and http://docs.opencv.org/3.0-beta/modules/ximgproc/doc/superpixels.html \ingroup components */
57 public jevois::Parameter<superpixel::algo, superpixel::regionsize, superpixel::numpix,
58 superpixel::iterations, superpixel::output>
59{
60 public:
61 //! Default Component constructor ok
63
64 //! Virtual destructor for safe inheritance
65 virtual ~SuperPixel() { }
66
67 //! Process an RGB image and get some greyscale results
68 /*! outimg should be allocated with same size as the input and CV_8UC1 pixels. */
69 void process(cv::Mat const & inimg, cv::Mat & outimg);
70};
71
72
73
Superpixel image segmentation from OpenCV.
Definition SuperPixel.H:59
JEVOIS_DECLARE_PARAMETER(numpix, int, "Number of SEEDS superpixels", 200, ParamCateg)
Parameter.
JEVOIS_DECLARE_PARAMETER(algo, Algo, "Algorithm variant to use", Algo::SLICO, Algo_Values, ParamCateg)
Parameter.
JEVOIS_DECLARE_PARAMETER(iterations, int, "Number of iterations", 6, jevois::Range< int >(1, 100), ParamCateg)
Parameter.
void process(cv::Mat const &inimg, cv::Mat &outimg)
Process an RGB image and get some greyscale results.
Definition SuperPixel.C:23
JEVOIS_DEFINE_ENUM_CLASS(Algo,(SLIC)(SLICO)(SEEDS))
Enum for parameter.
virtual ~SuperPixel()
Virtual destructor for safe inheritance.
Definition SuperPixel.H:65
JEVOIS_DECLARE_PARAMETER(output, OutType, "Output labels or demo grayscale input image with superimposed contours", OutType::Contours, OutType_Values, ParamCateg)
Parameter.
JEVOIS_DEFINE_ENUM_CLASS(OutType,(Labels)(Contours))
Enum for parameter.
JEVOIS_DECLARE_PARAMETER(regionsize, int, "SLIC Region size", 30, ParamCateg)
Parameter.
friend friend class Component