...
};
-The class implements 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.]. It can compute own data cost (using truncated linear model) or use user-provided data cost.
+The class implements 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]. It can compute own data cost (using truncated linear model) or use user-provided data cost.
**Please note:** ``StereoBeliefPropagation`` requires a lot of memory:
.. math::
- width\_step \cdot height \cdot ndisp \cdot (1 + 0.25 + 0.0625 + \dotsm + \frac{1}{4^{levels}}
+ width\_step \cdot height \cdot ndisp \cdot (1 + 0.25 + 0.0625 + \dotsm + \frac{1}{4^{levels}})
for data cost storage. ``width_step`` is the number of bytes in a line including the padding.
DiscTerm = \min(disc\_single\_jump \cdot \lvert f_1-f_2 \rvert, max\_disc\_term)
-For more details please see [Pedro F. Felzenszwalb and Daniel P. Huttenlocher. Efficient belief propagation for early vision. International Journal of Computer Vision, 70(1), October 2006.].
+For more details please see [Pedro F. Felzenszwalb and Daniel P. Huttenlocher. Efficient belief propagation for early vision. International Journal of Computer Vision, 70(1), October 2006].
By default :cpp:class:`StereoBeliefPropagation` uses floating-point arithmetics and ``CV_32FC1`` type for messages. But also it can use fixed-point arithmetics and ``CV_16SC1`` type for messages for better perfomance. To avoid overflow in this case, the parameters must satisfy
gpu::StreamAccessor
-------------------
-.. c:type:: gpu::StreamAccessor
+.. cpp:class:: gpu::StreamAccessor
This class provides possibility to get ``cudaStream_t`` from :cpp:class:`gpu::Stream`. This class is declared in ``stream_accessor.hpp`` because that is only public header that depend on Cuda Runtime API. Including it will bring the dependency to your code. ::
:param borderType: Pixel extrapolation method. Only ``BORDER_REFLECT101`` and ``BORDER_REPLICATE`` are supported for now.
-See also: :c:func:`cornerMinEigenValue`.
+See also: :c:func:`cornerMinEigenVal`.
gpu::ConvolveBuf
----------------
-.. c:type:: gpu::ConvolveBuf
+.. cpp:class:: gpu::ConvolveBuf
Memory buffer for the :cpp:func:`gpu::convolve` function. ::
gpu::TargetArchs
----------------
-.. c:type:: gpu::TargetArchs
+.. cpp:class:: gpu::TargetArchs
This class provides functionality (as set of static methods) for checking which NVIDIA card architectures the GPU module was built for.
gpu::MultiGpuManager
--------------------
-.. c:type:: gpu::MultiGpuManager
+.. cpp:class:: gpu::MultiGpuManager
Provides functionality for working with many GPUs. ::
void operator()(const GpuMat& img, const GpuMat& mask, std::vector<KeyPoint>& keypoints, std::vector<float>& descriptors, \r
bool useProvidedKeypoints = false);\r
\r
- //! max keypoints = keypointsRatio * img.size().area()\r
+ //! max keypoints = min(keypointsRatio * img.size().area(), 65535)\r
float keypointsRatio;\r
\r
bool upright;\r
CV_Assert(nOctaves > 0 && nOctaveLayers > 0);\r
CV_Assert(TargetArchs::builtWith(GLOBAL_ATOMICS) && DeviceInfo().supports(GLOBAL_ATOMICS));\r
\r
- maxKeypoints = static_cast<int>(img.size().area() * surf.keypointsRatio);\r
- maxFeatures = static_cast<int>(1.5 * maxKeypoints);\r
- maxCandidates = static_cast<int>(1.5 * maxFeatures);\r
+ maxKeypoints = min(static_cast<int>(img.size().area() * surf.keypointsRatio), 65535);\r
+ maxFeatures = min(static_cast<int>(1.5 * maxKeypoints), 65535);\r
+ maxCandidates = min(static_cast<int>(1.5 * maxFeatures), 65535);\r
\r
CV_Assert(maxKeypoints > 0);\r
\r