Engauge Digitizer  2
FilterImage.cpp
1 /******************************************************************************************************
2  * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
7 #include "ColorFilter.h"
8 #include "DocumentModelColorFilter.h"
9 #include "DocumentModelGridRemoval.h"
10 #include "FilterImage.h"
11 #include "GridRemoval.h"
12 #include "Logger.h"
13 #include <QImage>
14 #include <QPixmap>
15 #include "Transformation.h"
16 
18 {
19 }
20 
21 QPixmap FilterImage::filter (const QImage &imageUnfiltered,
22  const Transformation &transformation,
23  const QString &curveSelected,
24  const DocumentModelColorFilter &modelColorFilter,
25  const DocumentModelGridRemoval &modelGridRemoval) const
26 {
27  // Filtered image
29  QImage imageFiltered (imageUnfiltered.width (),
30  imageUnfiltered.height (),
31  QImage::Format_RGB32);
32  QRgb rgbBackground = filter.marginColor (&imageUnfiltered);
33  filter.filterImage (imageUnfiltered,
34  imageFiltered,
35  modelColorFilter.colorFilterMode(curveSelected),
36  modelColorFilter.low(curveSelected),
37  modelColorFilter.high(curveSelected),
38  rgbBackground);
39 
40  GridRemoval gridRemoval;
41  QPixmap pixmapFiltered = gridRemoval.remove (transformation,
42  modelGridRemoval,
43  imageFiltered);
44 
45  return pixmapFiltered;
46 }
47 
48 
QRgb marginColor(const QImage *image) const
Identify the margin color of the image, which is defined as the most common color in the four margins...
Definition: ColorFilter.cpp:73
QPixmap filter(const QImage &imageUnfiltered, const Transformation &transformation, const QString &curveSelected, const DocumentModelColorFilter &modelColorFilter, const DocumentModelGridRemoval &modelGridRemoval) const
Filter original unfiltered image into filtered pixmap.
Definition: FilterImage.cpp:21
Class for filtering image to remove unimportant information.
Definition: ColorFilter.h:20
ColorFilterMode colorFilterMode(const QString &curveName) const
Get method for filter mode.
double high(const QString &curveName) const
High value of foreground, hue, intensity, saturation or value according to current filter mode...
Affine transformation between screen and graph coordinates, based on digitized axis points...
Model for DlgSettingsColorFilter and CmdSettingsColorFilter.
QPixmap remove(const Transformation &transformation, const DocumentModelGridRemoval &modelGridRemoval, const QImage &imageBefore)
Process QImage into QPixmap, removing the grid lines.
Definition: GridRemoval.cpp:45
FilterImage()
Single constructor.
Definition: FilterImage.cpp:17
double low(const QString &curveName) const
Low value of foreground, hue, intensity, saturation or value according to current filter mode normali...
Model for DlgSettingsGridRemoval and CmdSettingsGridRemoval. The settings are unstable until the user...
void filterImage(const QImage &imageOriginal, QImage &imageFiltered, ColorFilterMode colorFilterMode, double low, double high, QRgb rgbBackground)
Filter the original image according to the specified filtering parameters.
Definition: ColorFilter.cpp:41
Strategy class for grid removal.
Definition: GridRemoval.h:19