Exemple #1
0
        /// <summary>
        /// Extracts a diagonal from a matrix
        /// </summary>
        /// <param name="d">d index of the diagonal, with the following values:
        /// - d=0 is the main diagonal.
        /// - d&lt;0 is a diagonal from the lower half. For example, d=-1 means the diagonal is set immediately below the main one.
        /// - d&gt;0 is a diagonal from the upper half. For example, d=1 means the diagonal is set immediately above the main one.</param>
        /// <returns></returns>
        public MatExpr Diag(MatDiagType d = MatDiagType.Main)
        {
            ThrowIfDisposed();

            NativeMethods.HandleException(
                NativeMethods.core_MatExpr_diag(ptr, (int)d, out var ret));
            GC.KeepAlive(this);
            var retVal = new MatExpr(ret);

            return(retVal);
        }
Exemple #2
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="d"></param>
 /// <returns></returns>
 public Mat Diag(MatDiagType d)
 {
     ThrowIfDisposed();
     try
     {
         IntPtr retPtr = CppInvoke.core_Mat_diag(ptr, (int)d);
         Mat retVal = new Mat(retPtr);
         return retVal;
     }
     catch (BadImageFormatException ex)
     {
         throw PInvokeHelper.CreateException(ex);
     }
 }