Fawkes API Fawkes Development Version
opening.cpp
1
2/***************************************************************************
3 * opening.cpp - implementation of morphological opening filter
4 *
5 * Created: Mon Jun 05 14:00:46 2006
6 * Copyright 2005-2007 Tim Niemueller [www.niemueller.de]
7 *
8 ****************************************************************************/
9
10/* This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version. A runtime exception applies to
14 * this software (see LICENSE.GPL_WRE file mentioned below for details).
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Library General Public License for more details.
20 *
21 * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22 */
23
24#include <fvfilters/morphology/dilation.h>
25#include <fvfilters/morphology/erosion.h>
26#include <fvfilters/morphology/opening.h>
27
28#include <cstddef>
29
30namespace firevision {
31
32/** @class FilterOpening <fvfilters/morphology/opening.h>
33 * Morphological opening.
34 *
35 * @author Tim Niemueller
36 */
37
38/** Constructor. */
40{
41 dilate = new FilterDilation();
42 erode = new FilterErosion();
43}
44
45/** Destructor. */
47{
48 delete dilate;
49 delete erode;
50}
51
52void
54 ROI * roi,
55 orientation_t ori,
56 unsigned int buffer_num)
57{
58 Filter::set_src_buffer(buf, roi, ori, buffer_num);
59 erode->set_src_buffer(buf, roi, ori, buffer_num);
60}
61
62void
63FilterOpening::set_src_buffer(unsigned char *buf, ROI *roi, unsigned int buffer_num)
64{
65 Filter::set_src_buffer(buf, roi, buffer_num);
66 erode->set_src_buffer(buf, roi, buffer_num);
67}
68
69void
70FilterOpening::set_dst_buffer(unsigned char *buf, ROI *roi)
71{
72 Filter::set_dst_buffer(buf, roi);
73 erode->set_dst_buffer(buf, roi);
74 dilate->set_src_buffer(buf, roi);
75}
76
77void
79 unsigned int se_width,
80 unsigned int se_height,
81 unsigned int se_anchor_x,
82 unsigned int se_anchor_y)
83{
87}
88
89void
91{
92 erode->apply();
93 dilate->apply();
94}
95
96} // end namespace firevision
Morphological dilation.
Definition: dilation.h:31
virtual void apply()
Apply the filter.
Definition: dilation.cpp:75
Morphological erosion.
Definition: erosion.h:31
virtual void apply()
Apply the filter.
Definition: erosion.cpp:51
virtual void set_src_buffer(unsigned char *buf, ROI *roi, orientation_t ori=ORI_HORIZONTAL, unsigned int buffer_num=0)
Set source buffer with orientation.
Definition: opening.cpp:53
virtual ~FilterOpening()
Destructor.
Definition: opening.cpp:46
virtual void set_structuring_element(unsigned char *se, unsigned int se_width, unsigned int se_height, unsigned int se_anchor_x, unsigned int se_anchor_y)
Set the structuring element for successive filter runs.
Definition: opening.cpp:78
virtual void apply()
Apply the filter.
Definition: opening.cpp:90
virtual void set_dst_buffer(unsigned char *buf, ROI *roi)
Set the destination buffer.
Definition: opening.cpp:70
FilterOpening()
Constructor.
Definition: opening.cpp:39
virtual void set_dst_buffer(unsigned char *buf, ROI *roi)
Set the destination buffer.
Definition: filter.cpp:123
orientation_t * ori
Orientations, one for each source image.
Definition: filter.h:71
virtual void set_src_buffer(unsigned char *buf, ROI *roi, orientation_t ori=ORI_HORIZONTAL, unsigned int buffer_num=0)
Set source buffer with orientation.
Definition: filter.cpp:89
Morphological filter interface.
unsigned int se_height
Height of structuring element.
unsigned int se_width
Width of structuring element.
unsigned int se_anchor_y
Anchor point y offset of structuring element.
unsigned char * se
Structuring element.
virtual void set_structuring_element(unsigned char *se, unsigned int se_width, unsigned int se_height, unsigned int se_anchor_x, unsigned int se_anchor_y)
Set the structuring element for successive filter runs.
unsigned int se_anchor_x
Anchor point x offset of structuring element.
Region of interest.
Definition: roi.h:55