forked from VisionLabs/torch-opencv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cudafilters.cpp
129 lines (115 loc) · 4.46 KB
/
cudafilters.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <cudafilters.hpp>
extern "C"
struct TensorWrapper Filter_applyCuda(cutorchInfo info,
struct FilterPtr ptr, struct TensorWrapper src, struct TensorWrapper dst)
{
cuda::GpuMat retval = dst.toGpuMat();
ptr->apply(src.toGpuMat(), retval, prepareStream(info));
return TensorWrapper(retval, info.state);
}
extern "C"
struct FilterPtr createBoxFilterCuda(
int srcType, int dstType, struct SizeWrapper ksize, struct PointWrapper anchor,
int borderMode, struct ScalarWrapper borderVal)
{
return rescueObjectFromPtr(cuda::createBoxFilter(
srcType, dstType, ksize, anchor, borderMode, borderVal));
}
extern "C"
struct FilterPtr createLinearFilterCuda(
int srcType, int dstType, struct TensorWrapper kernel, struct PointWrapper anchor,
int borderMode, struct ScalarWrapper borderVal)
{
return rescueObjectFromPtr(cuda::createLinearFilter(
srcType, dstType, kernel.toMat(), anchor, borderMode, borderVal));
}
extern "C"
struct FilterPtr createLaplacianFilterCuda(
int srcType, int dstType, int ksize, double scale,
int borderMode, struct ScalarWrapper borderVal)
{
return rescueObjectFromPtr(cuda::createLaplacianFilter(
srcType, dstType, ksize, scale, borderMode, borderVal));
}
extern "C"
struct FilterPtr createSeparableLinearFilterCuda(
int srcType, int dstType, struct TensorWrapper rowKernel,
struct TensorWrapper columnKernel, struct PointWrapper anchor,
int rowBorderMode, int columnBorderMode)
{
return rescueObjectFromPtr(cuda::createSeparableLinearFilter(
srcType, dstType, rowKernel.toMat(), columnKernel.toMat(), anchor,
rowBorderMode, columnBorderMode));
}
extern "C"
struct FilterPtr createDerivFilterCuda(
int srcType, int dstType, int dx, int dy, int ksize, bool normalize,
double scale, int rowBorderMode, int columnBorderMode)
{
return rescueObjectFromPtr(cuda::createDerivFilter(
srcType, dstType, dx, dy, ksize, normalize, scale, rowBorderMode, columnBorderMode));
}
extern "C"
struct FilterPtr createSobelFilterCuda(
int srcType, int dstType, int dx, int dy, int ksize,
double scale, int rowBorderMode, int columnBorderMode)
{
return rescueObjectFromPtr(cuda::createSobelFilter(
srcType, dstType, dx, dy, ksize, scale, rowBorderMode, columnBorderMode));
}
extern "C"
struct FilterPtr createScharrFilterCuda(
int srcType, int dstType, int dx, int dy,
double scale, int rowBorderMode, int columnBorderMode)
{
return rescueObjectFromPtr(cuda::createScharrFilter(
srcType, dstType, dx, dy, scale, rowBorderMode, columnBorderMode));
}
extern "C"
struct FilterPtr createGaussianFilterCuda(
int srcType, int dstType, struct SizeWrapper ksize,
double sigma1, double sigma2, int rowBorderMode, int columnBorderMode)
{
return rescueObjectFromPtr(cuda::createGaussianFilter(
srcType, dstType, ksize, sigma1, sigma2, rowBorderMode, columnBorderMode));
}
extern "C"
struct FilterPtr createMorphologyFilterCuda(
int op, int srcType, struct TensorWrapper kernel,
struct PointWrapper anchor, int iterations)
{
return rescueObjectFromPtr(cuda::createMorphologyFilter(
op, srcType, kernel.toMat(), anchor, iterations));
}
extern "C"
struct FilterPtr createBoxMaxFilterCuda(
int srcType, struct SizeWrapper ksize, struct PointWrapper anchor,
int borderMode, struct ScalarWrapper borderVal)
{
return rescueObjectFromPtr(cuda::createBoxMaxFilter(
srcType, ksize, anchor, borderMode, borderVal));
}
extern "C"
struct FilterPtr createBoxMinFilterCuda(
int srcType, struct SizeWrapper ksize, struct PointWrapper anchor,
int borderMode, struct ScalarWrapper borderVal)
{
return rescueObjectFromPtr(cuda::createBoxMaxFilter(
srcType, ksize, anchor, borderMode, borderVal));
}
extern "C"
struct FilterPtr createRowSumFilterCuda(
int srcType, int dstType, int ksize, int anchor,
int borderMode, struct ScalarWrapper borderVal)
{
return rescueObjectFromPtr(cuda::createRowSumFilter(
srcType, dstType, ksize, anchor, borderMode, borderVal));
}
extern "C"
struct FilterPtr createColumnSumFilterCuda(
int srcType, int dstType, int ksize, int anchor,
int borderMode, struct ScalarWrapper borderVal)
{
return rescueObjectFromPtr(cuda::createColumnSumFilter(
srcType, dstType, ksize, anchor, borderMode, borderVal));
}