camera_calibration_and_3d_reconstruction.rst 18.2 KB
Newer Older
1
Camera Calibration and 3D Reconstruction
2 3 4 5
========================================

.. highlight:: cpp

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
6 7


8 9
gpu::StereoBM_GPU
-----------------
10
.. ocv:class:: gpu::StereoBM_GPU
11

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
12
Class computing stereo correspondence (disparity map) using the block matching algorithm. ::
13 14 15 16 17

    class StereoBM_GPU
    {
    public:
        enum { BASIC_PRESET = 0, PREFILTER_XSOBEL = 1 };
18

19
        enum { DEFAULT_NDISP = 64, DEFAULT_WINSZ = 19 };
20

21
        StereoBM_GPU();
22
        StereoBM_GPU(int preset, int ndisparities = DEFAULT_NDISP,
23
                     int winSize = DEFAULT_WINSZ);
24 25

        void operator() (const GpuMat& left, const GpuMat& right,
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
26
                         GpuMat& disparity, Stream& stream = Stream::Null());
27

28
        static bool checkIfGpuCallReasonable();
29

30 31 32
        int preset;
        int ndisp;
        int winSize;
33

34
        float avergeTexThreshold;
35

36 37
        ...
    };
38

39

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
40
The class also performs pre- and post-filtering steps: Sobel pre-filtering (if ``PREFILTER_XSOBEL`` flag is set) and low textureness filtering (if ``averageTexThreshols > 0`` ). If ``avergeTexThreshold = 0`` , low textureness filtering is disabled. Otherwise, the disparity is set to 0 in each point ``(x, y)`` , where for the left image
41

42
.. math::
43
    \sum HorizontalGradiensInWindow(x, y, winSize) < (winSize \cdot winSize) \cdot avergeTexThreshold
44

45
This means that the input left image is low textured.
46

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
47

48

Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
49
gpu::StereoBM_GPU::StereoBM_GPU
50
-----------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
51 52
Enables :ocv:class:`gpu::StereoBM_GPU` constructors.

53
.. ocv:function:: gpu::StereoBM_GPU::StereoBM_GPU()
54

55
.. ocv:function:: gpu::StereoBM_GPU::StereoBM_GPU(int preset, int ndisparities = DEFAULT_NDISP, int winSize = DEFAULT_WINSZ)
56

57
    :param preset: Parameter presetting:
58

59
        * **BASIC_PRESET** Basic mode without pre-processing.
60

61
        * **PREFILTER_XSOBEL** Sobel pre-filtering mode.
62

63
    :param ndisparities: Number of disparities. It must be a multiple of 8 and less or equal to 256.
64

65
    :param winSize: Block size.
66 67


68

Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
69
gpu::StereoBM_GPU::operator ()
70
----------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
71
Enables the stereo correspondence operator that finds the disparity for the specified rectified stereo pair.
72

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
73
.. ocv:function:: void gpu::StereoBM_GPU::operator ()(const GpuMat& left, const GpuMat& right, GpuMat& disparity, Stream& stream = Stream::Null())
74

75
    :param left: Left image. Only  ``CV_8UC1``  type is supported.
76

77
    :param right: Right image with the same size and the same type as the left one.
78

79
    :param disparity: Output disparity map. It is a  ``CV_8UC1``  image with the same size as the input images.
80

81
    :param stream: Stream for the asynchronous version.
82

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
83 84


Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
85
gpu::StereoBM_GPU::checkIfGpuCallReasonable
86
-----------------------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
87 88
Uses a heuristic method to estimate whether the current GPU is faster than the CPU in this algorithm. It queries the currently active device.

89
.. ocv:function:: bool gpu::StereoBM_GPU::checkIfGpuCallReasonable()
90

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
91

92 93 94

gpu::StereoBeliefPropagation
----------------------------
95
.. ocv:class:: gpu::StereoBeliefPropagation
96

97
Class computing stereo correspondence using the belief propagation algorithm. ::
98 99 100 101 102 103 104

    class StereoBeliefPropagation
    {
    public:
        enum { DEFAULT_NDISP  = 64 };
        enum { DEFAULT_ITERS  = 5  };
        enum { DEFAULT_LEVELS = 5  };
105 106

        static void estimateRecommendedParams(int width, int height,
107
            int& ndisp, int& iters, int& levels);
108

109 110 111 112 113 114 115 116
        explicit StereoBeliefPropagation(int ndisp = DEFAULT_NDISP,
            int iters  = DEFAULT_ITERS,
            int levels = DEFAULT_LEVELS,
            int msg_type = CV_32F);
        StereoBeliefPropagation(int ndisp, int iters, int levels,
            float max_data_term, float data_weight,
            float max_disc_term, float disc_single_jump,
            int msg_type = CV_32F);
117 118

        void operator()(const GpuMat& left, const GpuMat& right,
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
119 120
                        GpuMat& disparity, Stream& stream = Stream::Null());
        void operator()(const GpuMat& data, GpuMat& disparity, Stream& stream = Stream::Null());
121

122
        int ndisp;
123

124 125
        int iters;
        int levels;
126

127 128 129 130
        float max_data_term;
        float data_weight;
        float max_disc_term;
        float disc_single_jump;
131

132
        int msg_type;
133

134 135
        ...
    };
136

137
The class implements algorithm described in [Felzenszwalb2006]_ . It can compute own data cost (using a truncated linear model) or use a user-provided data cost.
138

139
.. note::
140

141
    ``StereoBeliefPropagation`` requires a lot of memory for message storage:
142

143
    .. math::
144

145
        width \_ step  \cdot height  \cdot ndisp  \cdot 4  \cdot (1 + 0.25)
146

147
    and for data cost storage:
148

149
    .. math::
150

151 152 153
        width\_step \cdot height \cdot ndisp \cdot (1 + 0.25 + 0.0625 +  \dotsm + \frac{1}{4^{levels}})

    ``width_step`` is the number of bytes in a line including padding.
154 155


Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
156

Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
157
gpu::StereoBeliefPropagation::StereoBeliefPropagation
158
---------------------------------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
159
Enables the :ocv:class:`gpu::StereoBeliefPropagation` constructors.
160

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
161
.. ocv:function:: gpu::StereoBeliefPropagation::StereoBeliefPropagation(int ndisp = DEFAULT_NDISP, int iters = DEFAULT_ITERS, int levels = DEFAULT_LEVELS, int msg_type = CV_32F)
162

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
163
.. ocv:function:: gpu::StereoBeliefPropagation::StereoBeliefPropagation(int ndisp, int iters, int levels, float max_data_term, float data_weight, float max_disc_term, float disc_single_jump, int msg_type = CV_32F)
164

165
    :param ndisp: Number of disparities.
166

167
    :param iters: Number of BP iterations on each level.
168

169
    :param levels: Number of levels.
170

171
    :param max_data_term: Threshold for data cost truncation.
172

173
    :param data_weight: Data weight.
174

175
    :param max_disc_term: Threshold for discontinuity truncation.
176

177
    :param disc_single_jump: Discontinuity single jump.
178

179
    :param msg_type: Type for messages.  ``CV_16SC1``  and  ``CV_32FC1`` types are supported.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
180

181
``StereoBeliefPropagation`` uses a truncated linear model for the data cost and discontinuity terms:
182

183
.. math::
184

185
    DataCost = data \_ weight  \cdot \min ( \lvert I_2-I_1  \rvert , max \_ data \_ term)
186 187 188

.. math::

189
    DiscTerm =  \min (disc \_ single \_ jump  \cdot \lvert f_1-f_2  \rvert , max \_ disc \_ term)
190

191
For more details, see [Felzenszwalb2006]_.
192

193
By default, :ocv:class:`gpu::StereoBeliefPropagation` uses floating-point arithmetics and the ``CV_32FC1`` type for messages. But it can also use fixed-point arithmetics and the ``CV_16SC1`` message type for better performance. To avoid an overflow in this case, the parameters must satisfy the following requirement:
194 195 196

.. math::

197
    10  \cdot 2^{levels-1}  \cdot max \_ data \_ term < SHRT \_ MAX
198

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
199 200


Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
201 202
gpu::StereoBeliefPropagation::estimateRecommendedParams
-----------------------------------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
203 204 205
Uses a heuristic method to compute the recommended parameters ( ``ndisp``, ``iters`` and ``levels`` ) for the specified image size ( ``width`` and ``height`` ).

.. ocv:function:: void gpu::StereoBeliefPropagation::estimateRecommendedParams(int width, int height, int& ndisp, int& iters, int& levels)
Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
206

207 208


Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
209
gpu::StereoBeliefPropagation::operator ()
210
---------------------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
211
Enables the stereo correspondence operator that finds the disparity for the specified rectified stereo pair or data cost.
212

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
213
.. ocv:function:: void gpu::StereoBeliefPropagation::operator ()(const GpuMat& left, const GpuMat& right, GpuMat& disparity, Stream& stream = Stream::Null())
214

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
215
.. ocv:function:: void gpu::StereoBeliefPropagation::operator ()(const GpuMat& data, GpuMat& disparity, Stream& stream = Stream::Null())
216

217
    :param left: Left image. ``CV_8UC1`` , ``CV_8UC3``  and  ``CV_8UC4``  types are supported.
218

219
    :param right: Right image with the same size and the same type as the left one.
220

221
    :param data: User-specified data cost, a matrix of ``msg_type`` type and ``Size(<image columns>*ndisp, <image rows>)`` size.
222

223
    :param disparity: Output disparity map. If  ``disparity``  is empty, the output type is  ``CV_16SC1`` . Otherwise, the type is retained.
224

225
    :param stream: Stream for the asynchronous version.
226

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
227 228


229 230
gpu::StereoConstantSpaceBP
--------------------------
231
.. ocv:class:: gpu::StereoConstantSpaceBP
232

233
Class computing stereo correspondence using the constant space belief propagation algorithm. ::
234 235 236 237 238 239 240 241

    class StereoConstantSpaceBP
    {
    public:
        enum { DEFAULT_NDISP    = 128 };
        enum { DEFAULT_ITERS    = 8   };
        enum { DEFAULT_LEVELS   = 4   };
        enum { DEFAULT_NR_PLANE = 4   };
242 243

        static void estimateRecommendedParams(int width, int height,
244
            int& ndisp, int& iters, int& levels, int& nr_plane);
245

246 247 248 249 250 251
        explicit StereoConstantSpaceBP(int ndisp = DEFAULT_NDISP,
            int iters    = DEFAULT_ITERS,
            int levels   = DEFAULT_LEVELS,
            int nr_plane = DEFAULT_NR_PLANE,
            int msg_type = CV_32F);
        StereoConstantSpaceBP(int ndisp, int iters, int levels, int nr_plane,
252
            float max_data_term, float data_weight,
253 254 255
            float max_disc_term, float disc_single_jump,
            int min_disp_th = 0,
            int msg_type = CV_32F);
256 257

        void operator()(const GpuMat& left, const GpuMat& right,
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
258
                        GpuMat& disparity, Stream& stream = Stream::Null());
259

260
        int ndisp;
261

262 263
        int iters;
        int levels;
264

265
        int nr_plane;
266

267 268 269 270
        float max_data_term;
        float data_weight;
        float max_disc_term;
        float disc_single_jump;
271

272
        int min_disp_th;
273

274
        int msg_type;
275

276
        bool use_local_init_data_cost;
277

278 279
        ...
    };
280

281

282
The class implements algorithm described in [Yang2010]_. ``StereoConstantSpaceBP`` supports both local minimum and global minimum data cost initialization algorithms. For more details, see the paper mentioned above. By default, a local algorithm is used. To enable a global algorithm, set ``use_local_init_data_cost`` to ``false`` .
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
283 284


285

Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
286
gpu::StereoConstantSpaceBP::StereoConstantSpaceBP
287
-----------------------------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
288 289
Enables the :ocv:class:`gpu::StereoConstantSpaceBP` constructors.

290
.. ocv:function:: gpu::StereoConstantSpaceBP::StereoConstantSpaceBP(int ndisp = DEFAULT_NDISP, int iters = DEFAULT_ITERS, int levels = DEFAULT_LEVELS, int nr_plane = DEFAULT_NR_PLANE, int msg_type = CV_32F)
291

292
.. ocv:function:: gpu::StereoConstantSpaceBP::StereoConstantSpaceBP(int ndisp, int iters, int levels, int nr_plane, float max_data_term, float data_weight, float max_disc_term, float disc_single_jump, int min_disp_th = 0, int msg_type = CV_32F)
293

294
    :param ndisp: Number of disparities.
295

296
    :param iters: Number of BP iterations on each level.
297

298
    :param levels: Number of levels.
299

300
    :param nr_plane: Number of disparity levels on the first level.
301

302
    :param max_data_term: Truncation of data cost.
303

304
    :param data_weight: Data weight.
305

306
    :param max_disc_term: Truncation of discontinuity.
307

308
    :param disc_single_jump: Discontinuity single jump.
309

310
    :param min_disp_th: Minimal disparity threshold.
311

312
    :param msg_type: Type for messages.  ``CV_16SC1``  and  ``CV_32FC1`` types are supported.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
313

314
``StereoConstantSpaceBP`` uses a truncated linear model for the data cost and discontinuity terms:
315 316 317

.. math::

318
    DataCost = data \_ weight  \cdot \min ( \lvert I_2-I_1  \rvert , max \_ data \_ term)
319

320
.. math::
321

322
    DiscTerm =  \min (disc \_ single \_ jump  \cdot \lvert f_1-f_2  \rvert , max \_ disc \_ term)
323

324
For more details, see [Yang2010]_.
325

326
By default, ``StereoConstantSpaceBP`` uses floating-point arithmetics and the ``CV_32FC1`` type for messages. But it can also use fixed-point arithmetics and the ``CV_16SC1`` message type for better performance. To avoid an overflow in this case, the parameters must satisfy the following requirement:
327 328 329

.. math::

330
    10  \cdot 2^{levels-1}  \cdot max \_ data \_ term < SHRT \_ MAX
331

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
332 333


Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
334 335
gpu::StereoConstantSpaceBP::estimateRecommendedParams
---------------------------------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
336 337 338
Uses a heuristic method to compute parameters (ndisp, iters, levelsand nrplane) for the specified image size (widthand height).

.. ocv:function:: void gpu::StereoConstantSpaceBP::estimateRecommendedParams(int width, int height, int& ndisp, int& iters, int& levels, int& nr_plane)
Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
339

340

341

Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
342
gpu::StereoConstantSpaceBP::operator ()
343
-------------------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
344
Enables the stereo correspondence operator that finds the disparity for the specified rectified stereo pair.
345

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
346
.. ocv:function:: void gpu::StereoConstantSpaceBP::operator ()(const GpuMat& left, const GpuMat& right, GpuMat& disparity, Stream& stream = Stream::Null())
347

348
    :param left: Left image. ``CV_8UC1`` , ``CV_8UC3``  and  ``CV_8UC4``  types are supported.
349

350
    :param right: Right image with the same size and the same type as the left one.
351

352
    :param disparity: Output disparity map. If  ``disparity``  is empty, the output type is  ``CV_16SC1`` . Otherwise, the output type is  ``disparity.type()`` .
353

354
    :param stream: Stream for the asynchronous version.
355

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
356 357


358 359
gpu::DisparityBilateralFilter
-----------------------------
360
.. ocv:class:: gpu::DisparityBilateralFilter
361

362
Class refining a disparity map using joint bilateral filtering. ::
363

364
    class CV_EXPORTS DisparityBilateralFilter
365 366 367 368 369
    {
    public:
        enum { DEFAULT_NDISP  = 64 };
        enum { DEFAULT_RADIUS = 3 };
        enum { DEFAULT_ITERS  = 1 };
370 371

        explicit DisparityBilateralFilter(int ndisp = DEFAULT_NDISP,
372
            int radius = DEFAULT_RADIUS, int iters = DEFAULT_ITERS);
373 374 375

        DisparityBilateralFilter(int ndisp, int radius, int iters,
            float edge_threshold, float max_disc_threshold,
376
            float sigma_range);
377 378

        void operator()(const GpuMat& disparity, const GpuMat& image,
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
379
                        GpuMat& dst, Stream& stream = Stream::Null());
380

381 382
        ...
    };
383

384

385
The class implements [Yang2010]_ algorithm.
386

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
387 388


Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
389
gpu::DisparityBilateralFilter::DisparityBilateralFilter
390
-----------------------------------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
391
Enables the :ocv:class:`gpu::DisparityBilateralFilter` constructors.
392

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
393
.. ocv:function:: gpu::DisparityBilateralFilter::DisparityBilateralFilter(int ndisp = DEFAULT_NDISP, int radius = DEFAULT_RADIUS, int iters = DEFAULT_ITERS)
394

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
395
.. ocv:function:: gpu::DisparityBilateralFilter::DisparityBilateralFilter(int ndisp, int radius, int iters, float edge_threshold, float max_disc_threshold, float sigma_range)
396

397
    :param ndisp: Number of disparities.
398

399
    :param radius: Filter radius.
400

401
    :param iters: Number of iterations.
402

403
    :param edge_threshold: Threshold for edges.
404

405
    :param max_disc_threshold: Constant to reject outliers.
406

407
    :param sigma_range: Filter range.
408

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
409 410


Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
411
gpu::DisparityBilateralFilter::operator ()
412
----------------------------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
413
Refines a disparity map using joint bilateral filtering.
414

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
415
.. ocv:function:: void gpu::DisparityBilateralFilter::operator ()(const GpuMat& disparity, const GpuMat& image, GpuMat& dst, Stream& stream = Stream::Null())
416

417
    :param disparity: Input disparity map.  ``CV_8UC1``  and  ``CV_16SC1``  types are supported.
418

419
    :param image: Input image. ``CV_8UC1``  and  ``CV_8UC3``  types are supported.
420

421
    :param dst: Destination disparity map. It has the same size and type as  ``disparity`` .
422

423
    :param stream: Stream for the asynchronous version.
424

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
425 426


Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
427
gpu::drawColorDisp
428
----------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
429
Colors a disparity image.
430

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
431
.. ocv:function:: void gpu::drawColorDisp(const GpuMat& src_disp, GpuMat& dst_disp, int ndisp, Stream& stream = Stream::Null())
432

433
    :param src_disp: Source disparity image.  ``CV_8UC1``  and  ``CV_16SC1``  types are supported.
434

435
    :param dst_disp: Output disparity image. It has the same size as  ``src_disp`` . The  type is ``CV_8UC4``  in  ``BGRA``  format (alpha = 255).
436

437
    :param ndisp: Number of disparities.
438

439
    :param stream: Stream for the asynchronous version.
440

441
This function draws a colored disparity map by converting disparity values from ``[0..ndisp)`` interval first to ``HSV`` color space (where different disparity values correspond to different hues) and then converting the pixels to ``RGB`` for visualization.
442

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
443 444


Vadim Pisarevsky's avatar
Vadim Pisarevsky committed
445
gpu::reprojectImageTo3D
446
---------------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
447
Reprojects a disparity image to 3D space.
448

449
.. ocv:function:: void gpu::reprojectImageTo3D(const GpuMat& disp, GpuMat& xyzw, const Mat& Q, int dst_cn = 4, Stream& stream = Stream::Null())
450

451
    :param disp: Input disparity image.  ``CV_8U``  and  ``CV_16S``  types are supported.
452

453
    :param xyzw: Output 3- or 4-channel floating-point image of the same size as  ``disp`` . Each element of  ``xyzw(x,y)``  contains 3D coordinates ``(x,y,z)`` or ``(x,y,z,1)``  of the point  ``(x,y)`` , computed from the disparity map.
454

455
    :param Q: :math:`4 \times 4`  perspective transformation matrix that can be obtained via  :ocv:func:`stereoRectify` .
456

457 458
    :param dst_cn: The number of channels for output image. Can be 3 or 4.

459
    :param stream: Stream for the asynchronous version.
460

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
461 462 463 464
.. seealso:: :ocv:func:`reprojectImageTo3D`



465 466
gpu::solvePnPRansac
-------------------
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
467
Finds the object pose from 3D-2D point correspondences.
468

469
.. ocv:function:: void gpu::solvePnPRansac(const Mat& object, const Mat& image, const Mat& camera_mat, const Mat& dist_coef, Mat& rvec, Mat& tvec, bool use_extrinsic_guess=false, int num_iters=100, float max_dist=8.0, int min_inlier_count=100, vector<int>* inliers=NULL)
470 471

    :param object: Single-row matrix of object points.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
472

473
    :param image: Single-row matrix of image points.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
474

475
    :param camera_mat: 3x3 matrix of intrinsic camera parameters.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
476

477
    :param dist_coef: Distortion coefficients. See :ocv:func:`undistortPoints` for details.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
478

479
    :param rvec: Output 3D rotation vector.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
480

481
    :param tvec: Output 3D translation vector.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
482

483
    :param use_extrinsic_guess: Flag to indicate that the function must use ``rvec`` and ``tvec`` as an initial transformation guess. It is not supported for now.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
484

485
    :param num_iters: Maximum number of RANSAC iterations.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
486

487
    :param max_dist: Euclidean distance threshold to detect whether point is inlier or not.
Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
488

489
    :param min_inlier_count: Flag to indicate that the function must stop if greater or equal number of inliers is achieved. It is not supported for now.
490

Vladislav Vinogradov's avatar
Vladislav Vinogradov committed
491 492 493 494
    :param inliers: Output vector of inlier indices.

.. seealso:: :ocv:func:`solvePnPRansac`

495 496 497 498 499


.. [Felzenszwalb2006] Pedro F. Felzenszwalb algorithm [Pedro F. Felzenszwalb and Daniel P. Huttenlocher. *Efficient belief propagation for early vision*. International Journal of Computer Vision, 70(1), October 2006

.. [Yang2010] Q. Yang, L. Wang, and N. Ahuja. *A constant-space belief propagation algorithm for stereo matching*. In CVPR, 2010.