Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_gaussian_kernel.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_GAUSSIAN_KERNEL_H
8#define __KIS_GAUSSIAN_KERNEL_H
9
10#include "kritaimage_export.h"
11#include "kis_types.h"
13
14#include <Eigen/Core>
15
16class QRect;
17
18class KRITAIMAGE_EXPORT KisGaussianKernel
19{
20public:
21 static Eigen::Matrix<qreal, Eigen::Dynamic, Eigen::Dynamic>
22 createHorizontalMatrix(qreal radius);
23
24 static Eigen::Matrix<qreal, Eigen::Dynamic, Eigen::Dynamic>
25 createVerticalMatrix(qreal radius);
26
28 createHorizontalKernel(qreal radius);
29
31 createVerticalKernel(qreal radius);
32
34 createUniform2DKernel(qreal xRadius, qreal yRadius);
35
36 static qreal sigmaFromRadius(qreal radius);
37 static int kernelSizeFromRadius(qreal radius);
38
39 static void applyGaussian(KisPaintDeviceSP device,
40 const QRect& rect,
41 qreal xRadius, qreal yRadius,
42 const QBitArray &channelFlags,
43 KoUpdater *updater,
44 bool createTransaction = false,
46
47 static Eigen::Matrix<qreal, Eigen::Dynamic, Eigen::Dynamic> createLoGMatrix(qreal radius, qreal coeff, bool zeroCentered, bool includeWrappedArea);
48
49 static void applyLoG(KisPaintDeviceSP device,
50 const QRect& rect,
51 qreal radius,
52 qreal coeff,
53 const QBitArray &channelFlags,
54 KoUpdater *progressUpdater);
55
56 static void applyTightLoG(KisPaintDeviceSP device,
57 const QRect& rect,
58 qreal radius, qreal coeff,
59 const QBitArray &channelFlags,
60 KoUpdater *progressUpdater);
61
62
63 static Eigen::Matrix<qreal, Eigen::Dynamic, Eigen::Dynamic> createDilateMatrix(qreal radius);
64
65 static void applyDilate(KisPaintDeviceSP device,
66 const QRect& rect,
67 qreal radius,
68 const QBitArray &channelFlags,
69 KoUpdater *progressUpdater,
70 bool createTransaction = false);
71
72 static void applyErodeU8(KisPaintDeviceSP device,
73 const QRect& rect,
74 qreal radius,
75 const QBitArray &channelFlags,
76 KoUpdater *progressUpdater,
77 bool createTransaction = false);
78};
79
80#endif /* __KIS_GAUSSIAN_KERNEL_H */