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
408f9334
Commit
408f9334
authored
Mar 04, 2015
by
Olexa Bilaniuk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
External interface converted to use OpenCV Ptr<> smart pointer.
parent
f5923217
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
67 deletions
+41
-67
fundam.cpp
modules/calib3d/src/fundam.cpp
+1
-7
rhorefc.cpp
modules/calib3d/src/rhorefc.cpp
+22
-32
rhorefc.h
modules/calib3d/src/rhorefc.h
+18
-28
No files found.
modules/calib3d/src/fundam.cpp
View file @
408f9334
...
...
@@ -303,7 +303,7 @@ static bool createAndRunRHORegistrator(double confidence,
* initialized, used, then finalized.
*/
RHO_HEST_REFC
*
p
=
rhoRefCInit
();
Ptr
<
RHO_HEST_REFC
>
p
=
rhoRefCInit
();
/**
* Optional. Ideally, the context would survive across calls to
...
...
@@ -339,12 +339,6 @@ static bool createAndRunRHORegistrator(double confidence,
NULL
,
(
float
*
)
tmpH
.
data
);
/**
* Cleanup.
*/
rhoRefCFini
(
p
);
/* Convert float homography to double precision. */
tmpH
.
convertTo
(
_H
,
CV_64FC1
);
...
...
modules/calib3d/src/rhorefc.cpp
View file @
408f9334
...
...
@@ -298,12 +298,13 @@ static inline void sacSub8x1 (float* Hout,
* @return A pointer to the context if successful; NULL if an error occured.
*/
RHO_HEST_REFC
*
rhoRefCInit
(
void
){
RHO_HEST_REFC
*
p
=
new
RHO_HEST_REFC
;
Ptr
<
RHO_HEST_REFC
>
rhoRefCInit
(
void
){
Ptr
<
RHO_HEST_REFC
>
p
=
Ptr
<
RHO_HEST_REFC
>
(
new
RHO_HEST_REFC
)
;
if
(
!
p
->
initialize
()){
delete
p
;
p
=
NULL
;
if
(
p
){
if
(
!
p
->
initialize
()){
p
=
Ptr
<
RHO_HEST_REFC
>
((
RHO_HEST_REFC
*
)
NULL
);
}
}
return
p
;
...
...
@@ -314,7 +315,7 @@ RHO_HEST_REFC* rhoRefCInit(void){
* External access to non-randomness table resize.
*/
int
rhoRefCEnsureCapacity
(
RHO_HEST_REFC
*
p
,
unsigned
N
,
double
beta
){
int
rhoRefCEnsureCapacity
(
Ptr
<
RHO_HEST_REFC
>
p
,
unsigned
N
,
double
beta
){
return
p
->
sacEnsureCapacity
(
N
,
beta
);
}
...
...
@@ -323,22 +324,11 @@ int rhoRefCEnsureCapacity(RHO_HEST_REFC* p, unsigned N, double beta){
* Seeds the internal PRNG with the given seed.
*/
void
rhoRefCSeed
(
RHO_HEST_REFC
*
p
,
unsigned
long
long
seed
){
void
rhoRefCSeed
(
Ptr
<
RHO_HEST_REFC
>
p
,
unsigned
long
long
seed
){
p
->
fastSeed
((
uint64_t
)
seed
);
}
/**
* External access to context destructor.
*
* @param [in] p The initialized estimator context to finalize.
*/
void
rhoRefCFini
(
RHO_HEST_REFC
*
p
){
delete
p
;
}
/**
* Estimates the homography using the given context, matches and parameters to
* PROSAC.
...
...
@@ -368,20 +358,20 @@ void rhoRefCFini(RHO_HEST_REFC* p){
* inliers for acceptance was reached; 0 otherwise.
*/
unsigned
rhoRefC
(
RHO_HEST_REFC
*
p
,
/* Homography estimation context. */
const
float
*
src
,
/* Source points */
const
float
*
dst
,
/* Destination points */
char
*
inl
,
/* Inlier mask */
unsigned
N
,
/* = src.length = dst.length = inl.length */
float
maxD
,
/* Works: 3.0 */
unsigned
maxI
,
/* Works: 2000 */
unsigned
rConvg
,
/* Works: 2000 */
double
cfd
,
/* Works: 0.995 */
unsigned
minInl
,
/* Minimum: 4 */
double
beta
,
/* Works: 0.35 */
unsigned
flags
,
/* Works: 0 */
const
float
*
guessH
,
/* Extrinsic guess, NULL if none provided */
float
*
finalH
){
/* Final result. */
unsigned
rhoRefC
(
Ptr
<
RHO_HEST_REFC
>
p
,
/* Homography estimation context. */
const
float
*
src
,
/* Source points */
const
float
*
dst
,
/* Destination points */
char
*
inl
,
/* Inlier mask */
unsigned
N
,
/* = src.length = dst.length = inl.length */
float
maxD
,
/* Works: 3.0 */
unsigned
maxI
,
/* Works: 2000 */
unsigned
rConvg
,
/* Works: 2000 */
double
cfd
,
/* Works: 0.995 */
unsigned
minInl
,
/* Minimum: 4 */
double
beta
,
/* Works: 0.35 */
unsigned
flags
,
/* Works: 0 */
const
float
*
guessH
,
/* Extrinsic guess, NULL if none provided */
float
*
finalH
){
/* Final result. */
return
p
->
rhoRefC
(
src
,
dst
,
inl
,
N
,
maxD
,
maxI
,
rConvg
,
cfd
,
minInl
,
beta
,
flags
,
guessH
,
finalH
);
}
...
...
modules/calib3d/src/rhorefc.h
View file @
408f9334
...
...
@@ -50,6 +50,7 @@
/* Includes */
#include <opencv2/core.hpp>
...
...
@@ -96,7 +97,7 @@ typedef struct RHO_HEST_REFC RHO_HEST_REFC;
* @return A pointer to the context if successful; NULL if an error occured.
*/
RHO_HEST_REFC
*
rhoRefCInit
(
void
);
Ptr
<
RHO_HEST_REFC
>
rhoRefCInit
(
void
);
/**
...
...
@@ -114,7 +115,7 @@ RHO_HEST_REFC* rhoRefCInit(void);
* @return 0 if successful; non-zero if an error occured.
*/
int
rhoRefCEnsureCapacity
(
RHO_HEST_REFC
*
p
,
unsigned
N
,
double
beta
);
int
rhoRefCEnsureCapacity
(
Ptr
<
RHO_HEST_REFC
>
p
,
unsigned
N
,
double
beta
);
...
...
@@ -129,18 +130,7 @@ int rhoRefCEnsureCapacity(RHO_HEST_REFC* p, unsigned N, double beta);
* @param [in] seed The 64-bit integer seed.
*/
void
rhoRefCSeed
(
RHO_HEST_REFC
*
p
,
unsigned
long
long
seed
);
/**
* Finalize the estimator context, by freeing the aligned buffers used
* internally.
*
* @param [in] p The initialized estimator context to finalize.
*/
void
rhoRefCFini
(
RHO_HEST_REFC
*
p
);
void
rhoRefCSeed
(
Ptr
<
RHO_HEST_REFC
>
p
,
unsigned
long
long
seed
);
/**
...
...
@@ -250,20 +240,20 @@ void rhoRefCFini(RHO_HEST_REFC* p);
* inliers for acceptance was reached; 0 otherwise.
*/
unsigned
rhoRefC
(
RHO_HEST_REFC
*
p
,
/* Homography estimation context. */
const
float
*
src
,
/* Source points */
const
float
*
dst
,
/* Destination points */
char
*
inl
,
/* Inlier mask */
unsigned
N
,
/* = src.length = dst.length = inl.length */
float
maxD
,
/* 3.0 */
unsigned
maxI
,
/* 2000 */
unsigned
rConvg
,
/* 2000 */
double
cfd
,
/* 0.995 */
unsigned
minInl
,
/* 4 */
double
beta
,
/* 0.35 */
unsigned
flags
,
/* 0 */
const
float
*
guessH
,
/* Extrinsic guess, NULL if none provided */
float
*
finalH
);
/* Final result. */
unsigned
rhoRefC
(
Ptr
<
RHO_HEST_REFC
>
p
,
/* Homography estimation context. */
const
float
*
src
,
/* Source points */
const
float
*
dst
,
/* Destination points */
char
*
inl
,
/* Inlier mask */
unsigned
N
,
/* = src.length = dst.length = inl.length */
float
maxD
,
/* 3.0 */
unsigned
maxI
,
/* 2000 */
unsigned
rConvg
,
/* 2000 */
double
cfd
,
/* 0.995 */
unsigned
minInl
,
/* 4 */
double
beta
,
/* 0.35 */
unsigned
flags
,
/* 0 */
const
float
*
guessH
,
/* Extrinsic guess, NULL if none provided */
float
*
finalH
);
/* Final result. */
...
...
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