Engauge Digitizer  2
 All Classes Functions Variables Typedefs Enumerations Friends Pages
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 (bool isGnuplot,
22  const QImage &imageUnfiltered,
23  const Transformation &transformation,
24  const QString &curveSelected,
25  const DocumentModelColorFilter &modelColorFilter,
26  const DocumentModelGridRemoval &modelGridRemoval) const
27 {
28  // Filtered image
30  QImage imageFiltered (imageUnfiltered.width (),
31  imageUnfiltered.height (),
32  QImage::Format_RGB32);
33  QRgb rgbBackground = filter.marginColor (&imageUnfiltered);
34  filter.filterImage (imageUnfiltered,
35  imageFiltered,
36  modelColorFilter.colorFilterMode(curveSelected),
37  modelColorFilter.low(curveSelected),
38  modelColorFilter.high(curveSelected),
39  rgbBackground);
40 
41  GridRemoval gridRemoval (isGnuplot);
42  QPixmap pixmapFiltered = gridRemoval.remove (transformation,
43  modelGridRemoval,
44  imageFiltered);
45 
46  return pixmapFiltered;
47 }
48 
49 
QPixmap filter(bool isGnuplot, 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
double low(const QString &curveName) const
Low value of foreground, hue, intensity, saturation or value according to current filter mode normali...
Affine transformation between screen and graph coordinates, based on digitized axis points...
Model for DlgSettingsColorFilter and CmdSettingsColorFilter.
double high(const QString &curveName) const
High value of foreground, hue, intensity, saturation or value according to current filter mode...
QPixmap remove(const Transformation &transformation, const DocumentModelGridRemoval &modelGridRemoval, const QImage &imageBefore)
Process QImage into QPixmap, removing the grid lines.
Definition: GridRemoval.cpp:53
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
ColorFilterMode colorFilterMode(const QString &curveName) const
Get method for filter mode.
FilterImage()
Single constructor.
Definition: FilterImage.cpp:17
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:24