opencv/modules/gpu/doc/operations_on_matrices.rst

260 lines
7.3 KiB
ReStructuredText
Raw Normal View History

Operations on Matrices
======================
.. highlight:: cpp
.. index:: gpu::transpose
2011-03-03 15:29:55 +08:00
gpu::transpose
------------------
.. cpp:function:: void gpu::transpose(const GpuMat& src, GpuMat& dst)
2011-02-26 19:05:10 +08:00
Transposes a matrix.
2011-02-26 19:05:10 +08:00
:param src: Source matrix. 1, 4, 8 bytes element sizes are supported for now.
2011-02-26 19:05:10 +08:00
:param dst: Destination matrix.
See also: :c:func:`transpose`.
.. index:: gpu::flip
2011-03-03 15:29:55 +08:00
gpu::flip
-------------
.. cpp:function:: void gpu::flip(const GpuMat& a, GpuMat& b, int flipCode)
2011-02-26 19:05:10 +08:00
Flips a 2D matrix around vertical, horizontal or both axes.
:param a: Source matrix. Only ``CV_8UC1`` and ``CV_8UC4`` matrices are supported for now.
2011-02-26 19:05:10 +08:00
:param b: Destination matrix.
:param flipCode: Specifies how to flip the source:
2011-02-26 19:05:10 +08:00
* **0** Flip around x-axis.
2011-02-26 19:05:10 +08:00
* **:math:`>`0** Flip around y-axis.
2011-02-26 19:05:10 +08:00
* **:math:`<`0** Flip around both axes.
See also: :c:func:`flip`.
.. index:: gpu::LUT
2011-03-03 15:29:55 +08:00
gpu::LUT
------------
.. cpp:function:: void gpu::LUT(const GpuMat& src, const Mat& lut, GpuMat& dst)
2011-02-26 19:05:10 +08:00
Transforms the source matrix into the destination matrix using given look-up table:
.. math::
dst(I) = lut(src(I))
:param src: Source matrix. ``CV_8UC1`` and ``CV_8UC3`` matrixes are supported for now.
:param lut: Look-up table. Must be continuous, ``CV_8U`` depth matrix. Its area must satisfy to ``lut.rows`` :math:`\times` ``lut.cols`` = 256 condition.
:param dst: Destination matrix. Will have the same depth as ``lut`` and the same number of channels as ``src``.
See also: :c:func:`LUT`.
.. index:: gpu::merge
2011-03-03 15:29:55 +08:00
gpu::merge
--------------
.. cpp:function:: void gpu::merge(const GpuMat* src, size_t n, GpuMat& dst)
.. cpp:function:: void gpu::merge(const GpuMat* src, size_t n, GpuMat& dst, const Stream& stream)
2011-02-26 19:05:10 +08:00
Makes a multi-channel matrix out of several single-channel matrices.
2011-02-26 19:05:10 +08:00
:param src: Pointer to array of the source matrices.
2011-02-26 19:05:10 +08:00
:param n: Number of source matrices.
2011-02-26 19:05:10 +08:00
:param dst: Destination matrix.
2011-02-26 19:05:10 +08:00
:param stream: Stream for the asynchronous version.
.. cpp:function:: void gpu::merge(const vector<GpuMat>& src, GpuMat& dst)
.. cpp:function:: void gpu::merge(const vector<GpuMat>& src, GpuMat& dst, const Stream& stream)
:param src: Vector of the source matrices.
:param dst: Destination matrix.
:param stream: Stream for the asynchronous version.
See also: :c:func:`merge`.
.. index:: gpu::split
2011-03-03 15:29:55 +08:00
gpu::split
--------------
.. cpp:function:: void gpu::split(const GpuMat& src, GpuMat* dst)
.. cpp:function:: void gpu::split(const GpuMat& src, GpuMat* dst, const Stream& stream)
2011-02-26 19:05:10 +08:00
Copies each plane of a multi-channel matrix into an array.
2011-02-26 19:05:10 +08:00
:param src: Source matrix.
2011-02-26 19:05:10 +08:00
:param dst: Pointer to array of single-channel matrices.
2011-02-26 19:05:10 +08:00
:param stream: Stream for the asynchronous version.
.. cpp:function:: void gpu::split(const GpuMat& src, vector<GpuMat>& dst)
.. cpp:function:: void gpu::split(const GpuMat& src, vector<GpuMat>& dst, const Stream& stream)
:param src: Source matrix.
:param dst: Destination vector of single-channel matrices.
:param stream: Stream for the asynchronous version.
See also: :c:func:`split`.
.. index:: gpu::magnitude
2011-03-03 15:29:55 +08:00
gpu::magnitude
------------------
.. cpp:function:: void gpu::magnitude(const GpuMat& x, GpuMat& magnitude)
2011-02-26 19:05:10 +08:00
Computes magnitudes of complex matrix elements.
:param x: Source complex matrix in the interleaved format (``CV_32FC2``).
:param magnitude: Destination matrix of float magnitudes (``CV_32FC1``).
.. cpp:function:: void gpu::magnitude(const GpuMat& x, const GpuMat& y, GpuMat& magnitude)
.. cpp:function:: void gpu::magnitude(const GpuMat& x, const GpuMat& y, GpuMat& magnitude, const Stream& stream)
:param x: Source matrix, containing real components (``CV_32FC1``).
:param y: Source matrix, containing imaginary components (``CV_32FC1``).
:param magnitude: Destination matrix of float magnitudes (``CV_32FC1``).
:param stream: Stream for the asynchronous version.
See also: :c:func:`magnitude`.
.. index:: gpu::magnitudeSqr
2011-03-03 15:29:55 +08:00
gpu::magnitudeSqr
---------------------
.. cpp:function:: void gpu::magnitudeSqr(const GpuMat& x, GpuMat& magnitude)
2011-02-26 19:05:10 +08:00
Computes squared magnitudes of complex matrix elements.
:param x: Source complex matrix in the interleaved format (``CV_32FC2``).
:param magnitude: Destination matrix of float magnitude squares (``CV_32FC1``).
.. cpp:function:: void gpu::magnitudeSqr(const GpuMat& x, const GpuMat& y, GpuMat& magnitude)
.. cpp:function:: void gpu::magnitudeSqr(const GpuMat& x, const GpuMat& y, GpuMat& magnitude, const Stream& stream)
:param x: Source matrix, containing real components (``CV_32FC1``).
:param y: Source matrix, containing imaginary components (``CV_32FC1``).
:param magnitude: Destination matrix of float magnitude squares (``CV_32FC1``).
:param stream: Stream for the asynchronous version.
.. index:: gpu::phase
2011-03-03 15:29:55 +08:00
gpu::phase
--------------
.. cpp:function:: void gpu::phase(const GpuMat& x, const GpuMat& y, GpuMat& angle, bool angleInDegrees=false)
.. cpp:function:: void gpu::phase(const GpuMat& x, const GpuMat& y, GpuMat& angle, bool angleInDegrees, const Stream& stream)
2011-02-26 19:05:10 +08:00
Computes polar angles of complex matrix elements.
:param x: Source matrix, containing real components (``CV_32FC1``).
:param y: Source matrix, containing imaginary components (``CV_32FC1``).
:param angle: Destionation matrix of angles (``CV_32FC1``).
2011-02-26 19:05:10 +08:00
:param angleInDegress: Flag which indicates angles must be evaluated in degress.
2011-02-26 19:05:10 +08:00
:param stream: Stream for the asynchronous version.
See also: :c:func:`phase`.
.. index:: gpu::cartToPolar
2011-03-03 15:29:55 +08:00
gpu::cartToPolar
--------------------
.. cpp:function:: void gpu::cartToPolar(const GpuMat& x, const GpuMat& y, GpuMat& magnitude, GpuMat& angle, bool angleInDegrees=false)
.. cpp:function:: void gpu::cartToPolar(const GpuMat& x, const GpuMat& y, GpuMat& magnitude, GpuMat& angle, bool angleInDegrees, const Stream& stream)
2011-02-26 19:05:10 +08:00
Converts Cartesian coordinates into polar.
:param x: Source matrix, containing real components (``CV_32FC1``).
:param y: Source matrix, containing imaginary components (``CV_32FC1``).
:param magnitude: Destination matrix of float magnituds (``CV_32FC1``).
:param angle: Destionation matrix of angles (``CV_32FC1``).
2011-02-26 19:05:10 +08:00
:param angleInDegress: Flag which indicates angles must be evaluated in degress.
2011-02-26 19:05:10 +08:00
:param stream: Stream for the asynchronous version.
See also: :c:func:`cartToPolar`.
.. index:: gpu::polarToCart
2011-03-03 15:29:55 +08:00
gpu::polarToCart
--------------------
.. cpp:function:: void gpu::polarToCart(const GpuMat& magnitude, const GpuMat& angle, GpuMat& x, GpuMat& y, bool angleInDegrees=false)
.. cpp:function:: void gpu::polarToCart(const GpuMat& magnitude, const GpuMat& angle, GpuMat& x, GpuMat& y, bool angleInDegrees, const Stream& stream)
2011-02-26 19:05:10 +08:00
Converts polar coordinates into Cartesian.
:param magnitude: Source matrix, containing magnitudes (``CV_32FC1``).
:param angle: Source matrix, containing angles (``CV_32FC1``).
:param x: Destination matrix of real components (``CV_32FC1``).
:param y: Destination matrix of imaginary components (``CV_32FC1``).
2011-02-26 19:05:10 +08:00
:param angleInDegress: Flag which indicates angles are in degress.
2011-02-26 19:05:10 +08:00
:param stream: Stream for the asynchronous version.
See also: :c:func:`polarToCart`.