Per-element Operations ======================= .. highlight:: cpp .. index:: gpu::add gpu::add ------------ .. ocv:function:: void gpu::add(const GpuMat& src1, const GpuMat& src2, GpuMat& dst) .. ocv:function:: void gpu::add(const GpuMat& src1, const Scalar& src2, GpuMat& dst) Computes a matrix-matrix or matrix-scalar sum. :param src1: First source matrix. ``CV_8UC1``, ``CV_8UC4``, ``CV_32SC1``, and ``CV_32FC1`` matrices are supported for now. :param src2: Second source matrix or a scalar to be added to ``src1``. :param dst: Destination matrix with the same size and type as ``src1``. .. seealso:: :ocv:func:`add` .. index:: gpu::subtract gpu::subtract ----------------- .. ocv:function:: void gpu::subtract(const GpuMat& src1, const GpuMat& src2, GpuMat& dst) .. ocv:function:: void gpu::subtract(const GpuMat& src1, const Scalar& src2, GpuMat& dst) Computes a matrix-matrix or matrix-scalar difference. :param src1: First source matrix. ``CV_8UC1``, ``CV_8UC4``, ``CV_32SC1``, and ``CV_32FC1`` matrices are supported for now. :param src2: Second source matrix or a scalar to be subtracted from ``src1``. :param dst: Destination matrix with the same size and type as ``src1``. .. seealso:: :ocv:func:`subtract` .. index:: gpu::multiply gpu::multiply ----------------- .. ocv:function:: void gpu::multiply(const GpuMat& src1, const GpuMat& src2, GpuMat& dst) .. ocv:function:: void gpu::multiply(const GpuMat& src1, const Scalar& src2, GpuMat& dst) Computes a matrix-matrix or matrix-scalar per-element product. :param src1: First source matrix. ``CV_8UC1``, ``CV_8UC4``, ``CV_32SC1``, and ``CV_32FC1`` matrices are supported for now. :param src2: Second source matrix or a scalar to be multiplied by ``src1`` elements. :param dst: Destination matrix with the same size and type as ``src1``. .. seealso:: :ocv:func:`multiply` .. index:: gpu::divide gpu::divide --------------- .. ocv:function:: void gpu::divide(const GpuMat& src1, const GpuMat& src2, GpuMat& dst) .. ocv:function:: void gpu::divide(const GpuMat& src1, const Scalar& src2, GpuMat& dst) Computes a matrix-matrix or matrix-scalar sum. :param src1: First source matrix. ``CV_8UC1``, ``CV_8UC4``, ``CV_32SC1``, and ``CV_32FC1`` matrices are supported for now. :param src2: Second source matrix or a scalar. The ``src1`` elements are divided by it. :param dst: Destination matrix with the same size and type as ``src1``. This function, in contrast to :ocv:func:`divide`, uses a round-down rounding mode. .. seealso:: :ocv:func:`divide` .. index:: gpu::exp gpu::exp ------------ .. ocv:function:: void gpu::exp(const GpuMat& src, GpuMat& dst) Computes an exponent of each matrix element. :param src: Source matrix. ``CV_32FC1`` matrixes are supported for now. :param dst: Destination matrix with the same size and type as ``src``. .. seealso:: :ocv:func:`exp` .. index:: gpu::log gpu::log ------------ .. ocv:function:: void gpu::log(const GpuMat& src, GpuMat& dst) Computes a natural logarithm of absolute value of each matrix element. :param src: Source matrix. ``CV_32FC1`` matrixes are supported for now. :param dst: Destination matrix with the same size and type as ``src``. .. seealso:: :ocv:func:`log` .. index:: gpu::absdiff gpu::absdiff ---------------- .. ocv:function:: void gpu::absdiff(const GpuMat& src1, const GpuMat& src2, GpuMat& dst) .. ocv:function:: void gpu::absdiff(const GpuMat& src1, const Scalar& src2, GpuMat& dst) Computes per-element absolute difference of two matrices (or of a matrix and scalar). :param src1: First source matrix. ``CV_8UC1``, ``CV_8UC4``, ``CV_32SC1`` and ``CV_32FC1`` matrices are supported for now. :param src2: Second source matrix or a scalar to be added to ``src1``. :param dst: Destination matrix with the same size and type as ``src1``. .. seealso:: :ocv:func:`absdiff` .. index:: gpu::compare gpu::compare ---------------- .. ocv:function:: void gpu::compare(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, int cmpop) Compares elements of two matrices. :param src1: First source matrix. ``CV_8UC4`` and ``CV_32FC1`` matrices are supported for now. :param src2: Second source matrix with the same size and type as ``a``. :param dst: Destination matrix with the same size as ``a`` and the ``CV_8UC1`` type. :param cmpop: Flag specifying the relation between the elements to be checked: * **CMP_EQ:** ``src1(.) == src2(.)`` * **CMP_GT:** ``src1(.) < src2(.)`` * **CMP_GE:** ``src1(.) <= src2(.)`` * **CMP_LT:** ``src1(.) < src2(.)`` * **CMP_LE:** ``src1(.) <= src2(.)`` * **CMP_NE:** ``src1(.) != src2(.)`` .. seealso:: :ocv:func:`compare` .. index:: gpu::bitwise_not gpu::bitwise_not -------------------- .. ocv:function:: void gpu::bitwise_not(const GpuMat& src, GpuMat& dst, const GpuMat& mask=GpuMat()) .. ocv:function:: void gpu::bitwise_not(const GpuMat& src, GpuMat& dst, const GpuMat& mask, const Stream& stream) Performs a per-element bitwise inversion. :param src: Source matrix. :param dst: Destination matrix with the same size and type as ``src``. :param mask: Optional operation mask. 8-bit single channel image. :param stream: Stream for the asynchronous version. .. index:: gpu::bitwise_or gpu::bitwise_or ------------------- .. ocv:function:: void gpu::bitwise_or(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask=GpuMat()) .. ocv:function:: void gpu::bitwise_or(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask, const Stream& stream) Performs a per-element bitwise disjunction of two matrices. :param src1: First source matrix. :param src2: Second source matrix with the same size and type as ``src1``. :param dst: Destination matrix with the same size and type as ``src1``. :param mask: Optional operation mask. 8-bit single channel image. :param stream: Stream for the asynchronous version. .. index:: gpu::bitwise_and gpu::bitwise_and -------------------- .. ocv:function:: void gpu::bitwise_and(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask=GpuMat()) .. ocv:function:: void gpu::bitwise_and(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask, const Stream& stream) Performs a per-element bitwise conjunction of two matrices. :param src1: First source matrix. :param src2: Second source matrix with the same size and type as ``src1``. :param dst: Destination matrix with the same size and type as ``src1``. :param mask: Optional operation mask. 8-bit single channel image. :param stream: Stream for the asynchronous version. .. index:: gpu::bitwise_xor gpu::bitwise_xor -------------------- .. ocv:function:: void gpu::bitwise_xor(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask=GpuMat()) .. ocv:function:: void gpu::bitwise_xor(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const GpuMat& mask, const Stream& stream) Performs a per-element bitwise ``exclusive or`` operation of two matrices. :param src1: First source matrix. :param src2: Second source matrix with the same size and type as ``src1``. :param dst: Destination matrix with the same size and type as ``src1``. :param mask: Optional operation mask. 8-bit single channel image. :param stream: Stream for the asynchronous version. .. index:: gpu::min gpu::min ------------ .. ocv:function:: void gpu::min(const GpuMat& src1, const GpuMat& src2, GpuMat& dst) .. ocv:function:: void gpu::min(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const Stream& stream) .. ocv:function:: void gpu::min(const GpuMat& src1, double src2, GpuMat& dst) .. ocv:function:: void gpu::min(const GpuMat& src1, double src2, GpuMat& dst, const Stream& stream) Computes the per-element minimum of two matrices (or a matrix and a scalar). :param src1: First source matrix. :param src2: Second source matrix or a scalar to compare ``src1`` elements with. :param dst: Destination matrix with the same size and type as ``src1``. :param stream: Stream for the asynchronous version. .. seealso:: :ocv:func:`min` .. index:: gpu::max gpu::max ------------ .. ocv:function:: void gpu::max(const GpuMat& src1, const GpuMat& src2, GpuMat& dst) .. ocv:function:: void gpu::max(const GpuMat& src1, const GpuMat& src2, GpuMat& dst, const Stream& stream) .. ocv:function:: void gpu::max(const GpuMat& src1, double src2, GpuMat& dst) .. ocv:function:: void gpu::max(const GpuMat& src1, double src2, GpuMat& dst, const Stream& stream) Computes the per-element maximum of two matrices (or a matrix and a scalar). :param src1: First source matrix. :param src2: Second source matrix or a scalar to compare ``src1`` elements with. :param dst: Destination matrix with the same size and type as ``src1``. :param stream: Stream for the asynchronous version. .. seealso:: :ocv:func:`max`