subtract
import { subtract } from '@banou/opencv-wasm'Use after await initOpenCV(). See the initialization and named imports guide.
Calculates the per-element difference between two arrays or array and a scalar.
The function subtract calculates:
- Difference between two arrays, when both input arrays have the same size and the same number of channels:
\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) - \texttt{src2}(I)) \quad \texttt{if mask}(I) \ne0
- Difference between an array and a scalar, when src2 is constructed from Scalar or has the same
number of elements as
src1.channels():
\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) - \texttt{src2} ) \quad \texttt{if mask}(I) \ne0
- Difference between a scalar and an array, when src1 is constructed from Scalar or has the same
number of elements as
src2.channels():
\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1} - \texttt{src2}(I) ) \quad \texttt{if mask}(I) \ne0
- The reverse difference between a scalar and an array in the case of
SubRS:
\texttt{dst}(I) = \texttt{saturate} ( \texttt{src2} - \texttt{src1}(I) ) \quad \texttt{if mask}(I) \ne0
where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each channel is processed independently.
The first function in the list above can be replaced with matrix expressions:
dst = src1 - src2;
dst -= src1; // equivalent to subtract(dst, src1, dst);
The input arrays and the output array can all have the same or different depths. For example, you can subtract to 8-bit unsigned arrays and store the difference in a 16-bit signed array. Depth of the output array is determined by dtype parameter. In the second and third cases above, as well as in the first case, when src1.depth() == src2.depth(), dtype can be set to the default -1. In this case the output array will have the same depth as the input array, be it src1, src2 or both.
Note: Saturation is not applied when the output array has the depth CV_32S. You may even get result of an incorrect sign in the case of overflow.
Note: (Python) Be careful to difference behaviour between src1/src2 are single number and they are tuple/array.
subtract(src,X) means subtract(src,(X,X,X,X)).
subtract(src,(X,)) means subtract(src,(X,0,0,0)).
See: add, addWeighted, scaleAdd, Mat::convertTo
subtract(src1: Mat, src2: Mat, dst: Mat, mask: Mat, dtype: number): void;3 available overloads
subtract(src1: Mat, src2: Mat, dst: Mat): void;subtract(src1: Mat, src2: Mat, dst: Mat, mask: Mat): void;subtract(src1: Mat, src2: Mat, dst: Mat, mask: Mat, dtype: number): void;src1first input array or a scalar.
src2second input array or a scalar.
dstOutput destination, filled by the native operation. output array of the same size and the same number of channels as the input array.
maskoptional operation mask; this is CV_8U, CV8S or CV_Bool single channel array that specifies elements of the output array to be changed.
dtypeoptional depth of the output array
These signatures describe this package. Upstream documentation can mention optional backends that are absent from this build. Check runtime compatibility before choosing a backend or file format.