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
f92e2ed5
Commit
f92e2ed5
authored
Jun 26, 2015
by
Seon-Wook Park
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
spatialGradient: Make nosse version faster
parent
7b01e32f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
5 deletions
+21
-5
spatialgradient.cpp
modules/imgproc/src/spatialgradient.cpp
+21
-5
No files found.
modules/imgproc/src/spatialgradient.cpp
View file @
f92e2ed5
...
@@ -284,23 +284,39 @@ void spatialGradient( InputArray _src, OutputArray _dx, OutputArray _dy,
...
@@ -284,23 +284,39 @@ void spatialGradient( InputArray _src, OutputArray _dx, OutputArray _dy,
* 1 2 1
* 1 2 1
*/
*/
int
j_p
,
j_n
;
int
j_p
,
j_n
;
uchar
v00
,
v01
,
v02
,
v10
,
v11
,
v12
,
v20
,
v21
,
v22
;
for
(
i
=
0
;
i
<
H
;
i
++
)
for
(
i
=
0
;
i
<
H
;
i
++
)
{
{
p_src
=
P_src
[
i
];
c_src
=
P_src
[
i
+
1
];
n_src
=
P_src
[
i
+
2
];
p_src
=
P_src
[
i
];
c_src
=
P_src
[
i
+
1
];
n_src
=
P_src
[
i
+
2
];
c_dx
=
P_dx
[
i
];
c_dx
=
P_dx
[
i
];
c_dy
=
P_dy
[
i
];
c_dy
=
P_dy
[
i
];
for
(
j
=
i
>=
i_start
?
0
:
j_start
;
j
<
W
;
j
++
)
// Pre-load 2 columns
j
=
i
>=
i_start
?
0
:
j_start
;
j_p
=
j
-
1
;
if
(
j_p
<
0
)
j_p
=
j
+
j_offl
;
v00
=
p_src
[
j_p
];
v01
=
p_src
[
j
];
v10
=
c_src
[
j_p
];
v11
=
c_src
[
j
];
v20
=
n_src
[
j_p
];
v21
=
n_src
[
j
];
for
(
;
j
<
W
;
j
++
)
{
{
j_p
=
j
-
1
;
j_p
=
j
-
1
;
j_n
=
j
+
1
;
j_n
=
j
+
1
;
if
(
j_p
<
0
)
j_p
=
j
+
j_offl
;
if
(
j_p
<
0
)
j_p
=
j
+
j_offl
;
if
(
j_n
>=
W
)
j_n
=
j
+
j_offr
;
if
(
j_n
>=
W
)
j_n
=
j
+
j_offr
;
c_dx
[
j
]
=
-
(
p_src
[
j_p
]
+
c_src
[
j_p
]
+
c_src
[
j_p
]
+
n_src
[
j_p
])
+
// Get values for next column
(
p_src
[
j_n
]
+
c_src
[
j_n
]
+
c_src
[
j_n
]
+
n_src
[
j_n
]);
v02
=
p_src
[
j_n
];
c_dy
[
j
]
=
-
(
p_src
[
j_p
]
+
p_src
[
j
]
+
p_src
[
j
]
+
p_src
[
j_n
])
+
v12
=
c_src
[
j_n
];
(
n_src
[
j_p
]
+
n_src
[
j
]
+
n_src
[
j
]
+
n_src
[
j_n
]);
v22
=
n_src
[
j_n
];
c_dx
[
j
]
=
-
(
v00
+
v10
+
v10
+
v20
)
+
(
v02
+
v12
+
v12
+
v22
);
c_dy
[
j
]
=
-
(
v00
+
v01
+
v01
+
v02
)
+
(
v20
+
v21
+
v21
+
v22
);
// Move values back one column for next iteration
v00
=
v01
;
v10
=
v11
;
v20
=
v21
;
v01
=
v02
;
v11
=
v12
;
v21
=
v22
;
}
}
}
}
...
...
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