Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
98fff4a6
Commit
98fff4a6
authored
Mar 03, 2016
by
Maksim Shabunin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added separate hal::SepFilter2D class
parent
17cd1dac
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
30 deletions
+40
-30
hal.hpp
modules/imgproc/include/opencv2/imgproc/hal/hal.hpp
+24
-14
filter.cpp
modules/imgproc/src/filter.cpp
+16
-16
No files found.
modules/imgproc/include/opencv2/imgproc/hal/hal.hpp
View file @
98fff4a6
...
...
@@ -12,20 +12,13 @@ namespace cv { namespace hal {
struct
CV_EXPORTS
Filter2D
{
static
Ptr
<
hal
::
Filter2D
>
createFilter2D
(
uchar
*
kernel_data
,
size_t
kernel_step
,
int
kernel_type
,
int
kernel_width
,
int
kernel_height
,
int
max_width
,
int
max_height
,
int
stype
,
int
dtype
,
int
borderType
,
double
delta
,
int
anchor_x
,
int
anchor_y
,
bool
isSubmatrix
,
bool
isInplace
);
static
Ptr
<
hal
::
Filter2D
>
createSepFilter2D
(
int
stype
,
int
dtype
,
int
ktype
,
uchar
*
kernelx_data
,
size_t
kernelx_step
,
int
kernelx_width
,
int
kernelx_height
,
uchar
*
kernely_data
,
size_t
kernely_step
,
int
kernely_width
,
int
kernely_height
,
int
anchor_x
,
int
anchor_y
,
double
delta
,
int
borderType
);
static
Ptr
<
hal
::
Filter2D
>
create
(
uchar
*
kernel_data
,
size_t
kernel_step
,
int
kernel_type
,
int
kernel_width
,
int
kernel_height
,
int
max_width
,
int
max_height
,
int
stype
,
int
dtype
,
int
borderType
,
double
delta
,
int
anchor_x
,
int
anchor_y
,
bool
isSubmatrix
,
bool
isInplace
);
virtual
void
apply
(
uchar
*
src_data
,
size_t
src_step
,
uchar
*
dst_data
,
size_t
dst_step
,
int
width
,
int
height
,
...
...
@@ -34,6 +27,23 @@ struct CV_EXPORTS Filter2D
virtual
~
Filter2D
()
{}
};
struct
CV_EXPORTS
SepFilter2D
{
static
Ptr
<
hal
::
SepFilter2D
>
create
(
int
stype
,
int
dtype
,
int
ktype
,
uchar
*
kernelx_data
,
size_t
kernelx_step
,
int
kernelx_width
,
int
kernelx_height
,
uchar
*
kernely_data
,
size_t
kernely_step
,
int
kernely_width
,
int
kernely_height
,
int
anchor_x
,
int
anchor_y
,
double
delta
,
int
borderType
);
virtual
void
apply
(
uchar
*
src_data
,
size_t
src_step
,
uchar
*
dst_data
,
size_t
dst_step
,
int
width
,
int
height
,
int
full_width
,
int
full_height
,
int
offset_x
,
int
offset_y
)
=
0
;
virtual
~
SepFilter2D
()
{}
};
//! @}
}}
...
...
modules/imgproc/src/filter.cpp
View file @
98fff4a6
...
...
@@ -4843,7 +4843,7 @@ struct OcvFilter : public hal::Filter2D
};
struct
ReplacementSepFilter
:
public
hal
::
Filter2D
struct
ReplacementSepFilter
:
public
hal
::
Sep
Filter2D
{
cvhalFilter2D
*
ctx
;
bool
isInitialized
;
...
...
@@ -4882,7 +4882,7 @@ struct ReplacementSepFilter : public hal::Filter2D
}
};
struct
OcvSepFilter
:
public
hal
::
Filter2D
struct
OcvSepFilter
:
public
hal
::
Sep
Filter2D
{
Ptr
<
FilterEngine
>
f
;
int
src_type
;
...
...
@@ -4919,7 +4919,7 @@ struct OcvSepFilter : public hal::Filter2D
namespace
cv
{
namespace
hal
{
Ptr
<
hal
::
Filter2D
>
Filter2D
::
create
Filter2D
(
uchar
*
kernel_data
,
size_t
kernel_step
,
int
kernel_type
,
Ptr
<
hal
::
Filter2D
>
Filter2D
::
create
(
uchar
*
kernel_data
,
size_t
kernel_step
,
int
kernel_type
,
int
kernel_width
,
int
kernel_height
,
int
max_width
,
int
max_height
,
int
stype
,
int
dtype
,
...
...
@@ -4985,10 +4985,10 @@ Ptr<hal::Filter2D> Filter2D::createFilter2D(uchar* kernel_data, size_t kernel_st
//---------------------------------------------------------------
Ptr
<
Filter2D
>
Filter2D
::
createSepFilter2D
(
int
stype
,
int
dtype
,
int
ktype
,
uchar
*
kernelx_data
,
size_t
kernelx_step
,
int
kernelx_width
,
int
kernelx_height
,
uchar
*
kernely_data
,
size_t
kernely_step
,
int
kernely_width
,
int
kernely_height
,
int
anchor_x
,
int
anchor_y
,
double
delta
,
int
borderType
)
Ptr
<
SepFilter2D
>
SepFilter2D
::
create
(
int
stype
,
int
dtype
,
int
ktype
,
uchar
*
kernelx_data
,
size_t
kernelx_step
,
int
kernelx_width
,
int
kernelx_height
,
uchar
*
kernely_data
,
size_t
kernely_step
,
int
kernely_width
,
int
kernely_height
,
int
anchor_x
,
int
anchor_y
,
double
delta
,
int
borderType
)
{
{
ReplacementSepFilter
*
impl
=
new
ReplacementSepFilter
();
...
...
@@ -4997,7 +4997,7 @@ Ptr<Filter2D> Filter2D::createSepFilter2D(int stype, int dtype, int ktype,
kernely_data
,
kernely_step
,
kernely_width
,
kernely_height
,
anchor_x
,
anchor_y
,
delta
,
borderType
))
{
return
Ptr
<
hal
::
Filter2D
>
(
impl
);
return
Ptr
<
hal
::
Sep
Filter2D
>
(
impl
);
}
delete
impl
;
}
...
...
@@ -5007,7 +5007,7 @@ Ptr<Filter2D> Filter2D::createSepFilter2D(int stype, int dtype, int ktype,
kernelx_data
,
kernelx_step
,
kernelx_width
,
kernelx_height
,
kernely_data
,
kernely_step
,
kernely_width
,
kernely_height
,
anchor_x
,
anchor_y
,
delta
,
borderType
);
return
Ptr
<
hal
::
Filter2D
>
(
impl
);
return
Ptr
<
hal
::
Sep
Filter2D
>
(
impl
);
}
}
...
...
@@ -5039,9 +5039,9 @@ void cv::filter2D( InputArray _src, OutputArray _dst, int ddepth,
if
(
(
borderType
&
BORDER_ISOLATED
)
==
0
)
src
.
locateROI
(
wsz
,
ofs
);
Ptr
<
hal
::
Filter2D
>
c
=
hal
::
Filter2D
::
create
Filter2D
(
kernel
.
data
,
kernel
.
step
,
kernel
.
type
(),
kernel
.
cols
,
kernel
.
rows
,
dst
.
cols
,
dst
.
rows
,
src
.
type
(),
dst
.
type
(),
borderType
,
delta
,
anchor
.
x
,
anchor
.
y
,
src
.
isSubmatrix
(),
src
.
data
==
dst
.
data
);
Ptr
<
hal
::
Filter2D
>
c
=
hal
::
Filter2D
::
create
(
kernel
.
data
,
kernel
.
step
,
kernel
.
type
(),
kernel
.
cols
,
kernel
.
rows
,
dst
.
cols
,
dst
.
rows
,
src
.
type
(),
dst
.
type
(),
borderType
,
delta
,
anchor
.
x
,
anchor
.
y
,
src
.
isSubmatrix
(),
src
.
data
==
dst
.
data
);
c
->
apply
(
src
.
data
,
src
.
step
,
dst
.
data
,
dst
.
step
,
dst
.
cols
,
dst
.
rows
,
wsz
.
width
,
wsz
.
height
,
ofs
.
x
,
ofs
.
y
);
}
...
...
@@ -5067,10 +5067,10 @@ void cv::sepFilter2D( InputArray _src, OutputArray _dst, int ddepth,
CV_Assert
(
kernelX
.
type
()
==
kernelY
.
type
());
Ptr
<
hal
::
Filter2D
>
c
=
hal
::
Filter2D
::
createSepFilter2D
(
src
.
type
(),
dst
.
type
(),
kernelX
.
type
(),
kernelX
.
data
,
kernelX
.
step
,
kernelX
.
cols
,
kernelX
.
rows
,
kernelY
.
data
,
kernelY
.
step
,
kernelY
.
cols
,
kernelY
.
rows
,
anchor
.
x
,
anchor
.
y
,
delta
,
borderType
&
~
BORDER_ISOLATED
);
Ptr
<
hal
::
SepFilter2D
>
c
=
hal
::
SepFilter2D
::
create
(
src
.
type
(),
dst
.
type
(),
kernelX
.
type
(),
kernelX
.
data
,
kernelX
.
step
,
kernelX
.
cols
,
kernelX
.
rows
,
kernelY
.
data
,
kernelY
.
step
,
kernelY
.
cols
,
kernelY
.
rows
,
anchor
.
x
,
anchor
.
y
,
delta
,
borderType
&
~
BORDER_ISOLATED
);
c
->
apply
(
src
.
data
,
src
.
step
,
dst
.
data
,
dst
.
step
,
dst
.
cols
,
dst
.
rows
,
wsz
.
width
,
wsz
.
height
,
ofs
.
x
,
ofs
.
y
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment