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
bd70a033
Commit
bd70a033
authored
Aug 13, 2013
by
Roman Donchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Boring changes - calib3d.
parent
711fb6bd
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
57 additions
and
56 deletions
+57
-56
camera_calibration_and_3d_reconstruction.rst
.../calib3d/doc/camera_calibration_and_3d_reconstruction.rst
+1
-1
calib3d.hpp
modules/calib3d/include/opencv2/calib3d.hpp
+1
-1
calibinit.cpp
modules/calib3d/src/calibinit.cpp
+9
-9
calibration.cpp
modules/calib3d/src/calibration.cpp
+0
-0
compat_ptsetreg.cpp
modules/calib3d/src/compat_ptsetreg.cpp
+11
-13
five-point.cpp
modules/calib3d/src/five-point.cpp
+2
-2
fundam.cpp
modules/calib3d/src/fundam.cpp
+3
-3
levmarq.cpp
modules/calib3d/src/levmarq.cpp
+2
-2
ptsetreg.cpp
modules/calib3d/src/ptsetreg.cpp
+7
-5
stereobm.cpp
modules/calib3d/src/stereobm.cpp
+1
-1
stereosgbm.cpp
modules/calib3d/src/stereosgbm.cpp
+6
-5
triangulate.cpp
modules/calib3d/src/triangulate.cpp
+14
-14
No files found.
modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst
View file @
bd70a033
...
...
@@ -515,7 +515,7 @@ findCirclesGrid
-------------------
Finds centers in the grid of circles.
.. ocv:function:: bool findCirclesGrid( InputArray image, Size patternSize, OutputArray centers, int flags=CALIB_CB_SYMMETRIC_GRID, const Ptr<FeatureDetector> &blobDetector =
new SimpleBlobDetector
() )
.. ocv:function:: bool findCirclesGrid( InputArray image, Size patternSize, OutputArray centers, int flags=CALIB_CB_SYMMETRIC_GRID, const Ptr<FeatureDetector> &blobDetector =
makePtr<SimpleBlobDetector>
() )
.. ocv:pyfunction:: cv2.findCirclesGrid(image, patternSize[, centers[, flags[, blobDetector]]]) -> retval, centers
...
...
modules/calib3d/include/opencv2/calib3d.hpp
View file @
bd70a033
...
...
@@ -180,7 +180,7 @@ CV_EXPORTS_W void drawChessboardCorners( InputOutputArray image, Size patternSiz
//! finds circles' grid pattern of the specified size in the image
CV_EXPORTS_W
bool
findCirclesGrid
(
InputArray
image
,
Size
patternSize
,
OutputArray
centers
,
int
flags
=
CALIB_CB_SYMMETRIC_GRID
,
const
Ptr
<
FeatureDetector
>
&
blobDetector
=
new
SimpleBlobDetector
());
const
Ptr
<
FeatureDetector
>
&
blobDetector
=
makePtr
<
SimpleBlobDetector
>
());
//! finds intrinsic and extrinsic camera parameters from several fews of a known calibration pattern.
CV_EXPORTS_W
double
calibrateCamera
(
InputArrayOfArrays
objectPoints
,
...
...
modules/calib3d/src/calibinit.cpp
View file @
bd70a033
...
...
@@ -271,8 +271,8 @@ int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
if
(
!
out_corners
)
CV_Error
(
CV_StsNullPtr
,
"Null pointer to corners"
);
storage
=
cvCreateMemStorage
(
0
);
thresh_img
=
cvCreateMat
(
img
->
rows
,
img
->
cols
,
CV_8UC1
);
storage
.
reset
(
cvCreateMemStorage
(
0
)
);
thresh_img
.
reset
(
cvCreateMat
(
img
->
rows
,
img
->
cols
,
CV_8UC1
)
);
#ifdef DEBUG_CHESSBOARD
dbg_img
=
cvCreateImage
(
cvGetSize
(
img
),
IPL_DEPTH_8U
,
3
);
...
...
@@ -284,7 +284,7 @@ int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
{
// equalize the input image histogram -
// that should make the contrast between "black" and "white" areas big enough
norm_img
=
cvCreateMat
(
img
->
rows
,
img
->
cols
,
CV_8UC1
);
norm_img
.
reset
(
cvCreateMat
(
img
->
rows
,
img
->
cols
,
CV_8UC1
)
);
if
(
CV_MAT_CN
(
img
->
type
)
!=
1
)
{
...
...
@@ -541,12 +541,12 @@ int cvFindChessboardCorners( const void* arr, CvSize pattern_size,
cv
::
Ptr
<
CvMat
>
gray
;
if
(
CV_MAT_CN
(
img
->
type
)
!=
1
)
{
gray
=
cvCreateMat
(
img
->
rows
,
img
->
cols
,
CV_8UC1
);
gray
.
reset
(
cvCreateMat
(
img
->
rows
,
img
->
cols
,
CV_8UC1
)
);
cvCvtColor
(
img
,
gray
,
CV_BGR2GRAY
);
}
else
{
gray
=
cvCloneMat
(
img
);
gray
.
reset
(
cvCloneMat
(
img
)
);
}
int
wsize
=
2
;
cvFindCornerSubPix
(
gray
,
out_corners
,
pattern_size
.
width
*
pattern_size
.
height
,
...
...
@@ -627,7 +627,7 @@ icvOrderFoundConnectedQuads( int quad_count, CvCBQuad **quads,
int
*
all_count
,
CvCBQuad
**
all_quads
,
CvCBCorner
**
corners
,
CvSize
pattern_size
,
CvMemStorage
*
storage
)
{
cv
::
Ptr
<
CvMemStorage
>
temp_storage
=
cvCreateChildMemStorage
(
storage
);
cv
::
Ptr
<
CvMemStorage
>
temp_storage
(
cvCreateChildMemStorage
(
storage
)
);
CvSeq
*
stack
=
cvCreateSeq
(
0
,
sizeof
(
*
stack
),
sizeof
(
void
*
),
temp_storage
);
// first find an interior quad
...
...
@@ -1109,7 +1109,7 @@ icvCleanFoundConnectedQuads( int quad_count, CvCBQuad **quad_group, CvSize patte
// create an array of quadrangle centers
cv
::
AutoBuffer
<
CvPoint2D32f
>
centers
(
quad_count
);
cv
::
Ptr
<
CvMemStorage
>
temp_storage
=
cvCreateMemStorage
(
0
);
cv
::
Ptr
<
CvMemStorage
>
temp_storage
(
cvCreateMemStorage
(
0
)
);
for
(
i
=
0
;
i
<
quad_count
;
i
++
)
{
...
...
@@ -1205,7 +1205,7 @@ static int
icvFindConnectedQuads
(
CvCBQuad
*
quad
,
int
quad_count
,
CvCBQuad
**
out_group
,
int
group_idx
,
CvMemStorage
*
storage
)
{
cv
::
Ptr
<
CvMemStorage
>
temp_storage
=
cvCreateChildMemStorage
(
storage
);
cv
::
Ptr
<
CvMemStorage
>
temp_storage
(
cvCreateChildMemStorage
(
storage
)
);
CvSeq
*
stack
=
cvCreateSeq
(
0
,
sizeof
(
*
stack
),
sizeof
(
void
*
),
temp_storage
);
int
i
,
count
=
0
;
...
...
@@ -1674,7 +1674,7 @@ icvGenerateQuads( CvCBQuad **out_quads, CvCBCorner **out_corners,
min_size
=
25
;
//cvRound( image->cols * image->rows * .03 * 0.01 * 0.92 );
// create temporary storage for contours and the sequence of pointers to found quadrangles
temp_storage
=
cvCreateChildMemStorage
(
storage
);
temp_storage
.
reset
(
cvCreateChildMemStorage
(
storage
)
);
root
=
cvCreateSeq
(
0
,
sizeof
(
CvSeq
),
sizeof
(
CvSeq
*
),
temp_storage
);
// initialize contour retrieving routine
...
...
modules/calib3d/src/calibration.cpp
View file @
bd70a033
This diff is collapsed.
Click to expand it.
modules/calib3d/src/compat_ptsetreg.cpp
View file @
bd70a033
...
...
@@ -53,7 +53,6 @@ using cv::Ptr;
CvLevMarq
::
CvLevMarq
()
{
mask
=
prevParam
=
param
=
J
=
err
=
JtJ
=
JtJN
=
JtErr
=
JtJV
=
JtJW
=
Ptr
<
CvMat
>
();
lambdaLg10
=
0
;
state
=
DONE
;
criteria
=
cvTermCriteria
(
0
,
0
,
0
);
iters
=
0
;
...
...
@@ -62,7 +61,6 @@ CvLevMarq::CvLevMarq()
CvLevMarq
::
CvLevMarq
(
int
nparams
,
int
nerrs
,
CvTermCriteria
criteria0
,
bool
_completeSymmFlag
)
{
mask
=
prevParam
=
param
=
J
=
err
=
JtJ
=
JtJN
=
JtErr
=
JtJV
=
JtJW
=
Ptr
<
CvMat
>
();
init
(
nparams
,
nerrs
,
criteria0
,
_completeSymmFlag
);
}
...
...
@@ -89,19 +87,19 @@ void CvLevMarq::init( int nparams, int nerrs, CvTermCriteria criteria0, bool _co
{
if
(
!
param
||
param
->
rows
!=
nparams
||
nerrs
!=
(
err
?
err
->
rows
:
0
)
)
clear
();
mask
=
cvCreateMat
(
nparams
,
1
,
CV_8U
);
mask
.
reset
(
cvCreateMat
(
nparams
,
1
,
CV_8U
)
);
cvSet
(
mask
,
cvScalarAll
(
1
));
prevParam
=
cvCreateMat
(
nparams
,
1
,
CV_64F
);
param
=
cvCreateMat
(
nparams
,
1
,
CV_64F
);
JtJ
=
cvCreateMat
(
nparams
,
nparams
,
CV_64F
);
JtJN
=
cvCreateMat
(
nparams
,
nparams
,
CV_64F
);
JtJV
=
cvCreateMat
(
nparams
,
nparams
,
CV_64F
);
JtJW
=
cvCreateMat
(
nparams
,
1
,
CV_64F
);
JtErr
=
cvCreateMat
(
nparams
,
1
,
CV_64F
);
prevParam
.
reset
(
cvCreateMat
(
nparams
,
1
,
CV_64F
)
);
param
.
reset
(
cvCreateMat
(
nparams
,
1
,
CV_64F
)
);
JtJ
.
reset
(
cvCreateMat
(
nparams
,
nparams
,
CV_64F
)
);
JtJN
.
reset
(
cvCreateMat
(
nparams
,
nparams
,
CV_64F
)
);
JtJV
.
reset
(
cvCreateMat
(
nparams
,
nparams
,
CV_64F
)
);
JtJW
.
reset
(
cvCreateMat
(
nparams
,
1
,
CV_64F
)
);
JtErr
.
reset
(
cvCreateMat
(
nparams
,
1
,
CV_64F
)
);
if
(
nerrs
>
0
)
{
J
=
cvCreateMat
(
nerrs
,
nparams
,
CV_64F
);
err
=
cvCreateMat
(
nerrs
,
1
,
CV_64F
);
J
.
reset
(
cvCreateMat
(
nerrs
,
nparams
,
CV_64F
)
);
err
.
reset
(
cvCreateMat
(
nerrs
,
1
,
CV_64F
)
);
}
prevErrNorm
=
DBL_MAX
;
lambdaLg10
=
-
3
;
...
...
@@ -196,7 +194,7 @@ bool CvLevMarq::updateAlt( const CvMat*& _param, CvMat*& _JtJ, CvMat*& _JtErr, d
{
double
change
;
CV_Assert
(
err
.
empty
()
);
CV_Assert
(
!
err
);
if
(
state
==
DONE
)
{
_param
=
param
;
...
...
modules/calib3d/src/five-point.cpp
View file @
bd70a033
...
...
@@ -436,9 +436,9 @@ cv::Mat cv::findEssentialMat( InputArray _points1, InputArray _points2, double f
Mat
E
;
if
(
method
==
RANSAC
)
createRANSACPointSetRegistrator
(
new
EMEstimatorCallback
,
5
,
threshold
,
prob
)
->
run
(
points1
,
points2
,
E
,
_mask
);
createRANSACPointSetRegistrator
(
makePtr
<
EMEstimatorCallback
>
()
,
5
,
threshold
,
prob
)
->
run
(
points1
,
points2
,
E
,
_mask
);
else
createLMeDSPointSetRegistrator
(
new
EMEstimatorCallback
,
5
,
prob
)
->
run
(
points1
,
points2
,
E
,
_mask
);
createLMeDSPointSetRegistrator
(
makePtr
<
EMEstimatorCallback
>
()
,
5
,
prob
)
->
run
(
points1
,
points2
,
E
,
_mask
);
return
E
;
}
...
...
modules/calib3d/src/fundam.cpp
View file @
bd70a033
...
...
@@ -307,7 +307,7 @@ cv::Mat cv::findHomography( InputArray _points1, InputArray _points2,
if
(
ransacReprojThreshold
<=
0
)
ransacReprojThreshold
=
defaultRANSACReprojThreshold
;
Ptr
<
PointSetRegistrator
::
Callback
>
cb
=
new
HomographyEstimatorCallback
;
Ptr
<
PointSetRegistrator
::
Callback
>
cb
=
makePtr
<
HomographyEstimatorCallback
>
()
;
if
(
method
==
0
||
npoints
==
4
)
{
...
...
@@ -334,7 +334,7 @@ cv::Mat cv::findHomography( InputArray _points1, InputArray _points2,
if
(
method
==
RANSAC
||
method
==
LMEDS
)
cb
->
runKernel
(
src
,
dst
,
H
);
Mat
H8
(
8
,
1
,
CV_64F
,
H
.
ptr
<
double
>
());
createLMSolver
(
new
HomographyRefineCallback
(
src
,
dst
),
10
)
->
run
(
H8
);
createLMSolver
(
makePtr
<
HomographyRefineCallback
>
(
src
,
dst
),
10
)
->
run
(
H8
);
}
}
...
...
@@ -686,7 +686,7 @@ cv::Mat cv::findFundamentalMat( InputArray _points1, InputArray _points2,
if
(
npoints
<
7
)
return
Mat
();
Ptr
<
PointSetRegistrator
::
Callback
>
cb
=
new
FMEstimatorCallback
;
Ptr
<
PointSetRegistrator
::
Callback
>
cb
=
makePtr
<
FMEstimatorCallback
>
()
;
int
result
;
if
(
npoints
==
7
||
method
==
FM_8POINT
)
...
...
modules/calib3d/src/levmarq.cpp
View file @
bd70a033
...
...
@@ -95,7 +95,7 @@ public:
int
ptype
=
param0
.
type
();
CV_Assert
(
(
param0
.
cols
==
1
||
param0
.
rows
==
1
)
&&
(
ptype
==
CV_32F
||
ptype
==
CV_64F
));
CV_Assert
(
!
cb
.
empty
()
);
CV_Assert
(
cb
);
int
lx
=
param0
.
rows
+
param0
.
cols
-
1
;
param0
.
convertTo
(
x
,
CV_64F
);
...
...
@@ -220,7 +220,7 @@ CV_INIT_ALGORITHM(LMSolverImpl, "LMSolver",
Ptr
<
LMSolver
>
createLMSolver
(
const
Ptr
<
LMSolver
::
Callback
>&
cb
,
int
maxIters
)
{
CV_Assert
(
!
LMSolverImpl_info_auto
.
name
().
empty
()
);
return
new
LMSolverImpl
(
cb
,
maxIters
);
return
makePtr
<
LMSolverImpl
>
(
cb
,
maxIters
);
}
}
modules/calib3d/src/ptsetreg.cpp
View file @
bd70a033
...
...
@@ -171,7 +171,7 @@ public:
RNG
rng
((
uint64
)
-
1
);
CV_Assert
(
!
cb
.
empty
()
);
CV_Assert
(
cb
);
CV_Assert
(
confidence
>
0
&&
confidence
<
1
);
CV_Assert
(
count
>=
0
&&
count2
==
count
);
...
...
@@ -288,7 +288,7 @@ public:
RNG
rng
((
uint64
)
-
1
);
CV_Assert
(
!
cb
.
empty
()
);
CV_Assert
(
cb
);
CV_Assert
(
confidence
>
0
&&
confidence
<
1
);
CV_Assert
(
count
>=
0
&&
count2
==
count
);
...
...
@@ -397,7 +397,8 @@ Ptr<PointSetRegistrator> createRANSACPointSetRegistrator(const Ptr<PointSetRegis
double
_confidence
,
int
_maxIters
)
{
CV_Assert
(
!
RANSACPointSetRegistrator_info_auto
.
name
().
empty
()
);
return
new
RANSACPointSetRegistrator
(
_cb
,
_modelPoints
,
_threshold
,
_confidence
,
_maxIters
);
return
Ptr
<
PointSetRegistrator
>
(
new
RANSACPointSetRegistrator
(
_cb
,
_modelPoints
,
_threshold
,
_confidence
,
_maxIters
));
}
...
...
@@ -405,7 +406,8 @@ Ptr<PointSetRegistrator> createLMeDSPointSetRegistrator(const Ptr<PointSetRegist
int
_modelPoints
,
double
_confidence
,
int
_maxIters
)
{
CV_Assert
(
!
LMeDSPointSetRegistrator_info_auto
.
name
().
empty
()
);
return
new
LMeDSPointSetRegistrator
(
_cb
,
_modelPoints
,
_confidence
,
_maxIters
);
return
Ptr
<
PointSetRegistrator
>
(
new
LMeDSPointSetRegistrator
(
_cb
,
_modelPoints
,
_confidence
,
_maxIters
));
}
class
Affine3DEstimatorCallback
:
public
PointSetRegistrator
::
Callback
...
...
@@ -532,5 +534,5 @@ int cv::estimateAffine3D(InputArray _from, InputArray _to,
param1
=
param1
<=
0
?
3
:
param1
;
param2
=
(
param2
<
epsilon
)
?
0.99
:
(
param2
>
1
-
epsilon
)
?
0.99
:
param2
;
return
createRANSACPointSetRegistrator
(
new
Affine3DEstimatorCallback
,
4
,
param1
,
param2
)
->
run
(
dFrom
,
dTo
,
_out
,
_inliers
);
return
createRANSACPointSetRegistrator
(
makePtr
<
Affine3DEstimatorCallback
>
()
,
4
,
param1
,
param2
)
->
run
(
dFrom
,
dTo
,
_out
,
_inliers
);
}
modules/calib3d/src/stereobm.cpp
View file @
bd70a033
...
...
@@ -991,7 +991,7 @@ const char* StereoBMImpl::name_ = "StereoMatcher.BM";
cv
::
Ptr
<
cv
::
StereoBM
>
cv
::
createStereoBM
(
int
_numDisparities
,
int
_SADWindowSize
)
{
return
new
StereoBMImpl
(
_numDisparities
,
_SADWindowSize
);
return
makePtr
<
StereoBMImpl
>
(
_numDisparities
,
_SADWindowSize
);
}
/* End of file. */
modules/calib3d/src/stereosgbm.cpp
View file @
bd70a033
...
...
@@ -947,11 +947,12 @@ Ptr<StereoSGBM> createStereoSGBM(int minDisparity, int numDisparities, int SADWi
int
speckleWindowSize
,
int
speckleRange
,
int
mode
)
{
return
new
StereoSGBMImpl
(
minDisparity
,
numDisparities
,
SADWindowSize
,
P1
,
P2
,
disp12MaxDiff
,
preFilterCap
,
uniquenessRatio
,
speckleWindowSize
,
speckleRange
,
mode
);
return
Ptr
<
StereoSGBM
>
(
new
StereoSGBMImpl
(
minDisparity
,
numDisparities
,
SADWindowSize
,
P1
,
P2
,
disp12MaxDiff
,
preFilterCap
,
uniquenessRatio
,
speckleWindowSize
,
speckleRange
,
mode
));
}
Rect
getValidDisparityROI
(
Rect
roi1
,
Rect
roi2
,
...
...
modules/calib3d/src/triangulate.cpp
View file @
bd70a033
...
...
@@ -240,32 +240,32 @@ cvCorrectMatches(CvMat *F_, CvMat *points1_, CvMat *points2_, CvMat *new_points1
}
// Make sure F uses double precision
F
=
cvCreateMat
(
3
,
3
,
CV_64FC1
);
F
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)
);
cvConvert
(
F_
,
F
);
// Make sure points1 uses double precision
points1
=
cvCreateMat
(
points1_
->
rows
,
points1_
->
cols
,
CV_64FC2
);
points1
.
reset
(
cvCreateMat
(
points1_
->
rows
,
points1_
->
cols
,
CV_64FC2
)
);
cvConvert
(
points1_
,
points1
);
// Make sure points2 uses double precision
points2
=
cvCreateMat
(
points2_
->
rows
,
points2_
->
cols
,
CV_64FC2
);
points2
.
reset
(
cvCreateMat
(
points2_
->
rows
,
points2_
->
cols
,
CV_64FC2
)
);
cvConvert
(
points2_
,
points2
);
tmp33
=
cvCreateMat
(
3
,
3
,
CV_64FC1
);
tmp31
=
cvCreateMat
(
3
,
1
,
CV_64FC1
),
tmp31_2
=
cvCreateMat
(
3
,
1
,
CV_64FC1
);
T1i
=
cvCreateMat
(
3
,
3
,
CV_64FC1
),
T2i
=
cvCreateMat
(
3
,
3
,
CV_64FC1
);
R1
=
cvCreateMat
(
3
,
3
,
CV_64FC1
),
R2
=
cvCreateMat
(
3
,
3
,
CV_64FC1
);
TFT
=
cvCreateMat
(
3
,
3
,
CV_64FC1
),
TFTt
=
cvCreateMat
(
3
,
3
,
CV_64FC1
),
RTFTR
=
cvCreateMat
(
3
,
3
,
CV_64FC1
);
U
=
cvCreateMat
(
3
,
3
,
CV_64FC1
);
S
=
cvCreateMat
(
3
,
3
,
CV_64FC1
);
V
=
cvCreateMat
(
3
,
3
,
CV_64FC1
);
e1
=
cvCreateMat
(
3
,
1
,
CV_64FC1
),
e2
=
cvCreateMat
(
3
,
1
,
CV_64FC1
);
tmp33
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)
);
tmp31
.
reset
(
cvCreateMat
(
3
,
1
,
CV_64FC1
)),
tmp31_2
.
reset
(
cvCreateMat
(
3
,
1
,
CV_64FC1
)
);
T1i
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)),
T2i
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)
);
R1
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)),
R2
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)
);
TFT
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)),
TFTt
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)),
RTFTR
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)
);
U
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)
);
S
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)
);
V
.
reset
(
cvCreateMat
(
3
,
3
,
CV_64FC1
)
);
e1
.
reset
(
cvCreateMat
(
3
,
1
,
CV_64FC1
)),
e2
.
reset
(
cvCreateMat
(
3
,
1
,
CV_64FC1
)
);
double
x1
,
y1
,
x2
,
y2
;
double
scale
;
double
f1
,
f2
,
a
,
b
,
c
,
d
;
polynomial
=
cvCreateMat
(
1
,
7
,
CV_64FC1
);
result
=
cvCreateMat
(
1
,
6
,
CV_64FC2
);
polynomial
.
reset
(
cvCreateMat
(
1
,
7
,
CV_64FC1
)
);
result
.
reset
(
cvCreateMat
(
1
,
6
,
CV_64FC2
)
);
double
t_min
,
s_val
,
t
,
s
;
for
(
int
p
=
0
;
p
<
points1
->
cols
;
++
p
)
{
// Replace F by T2-t * F * T1-t
...
...
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