/// <summary> /// image average relative error. User buffer is internally allocated and freed. /// </summary> /// <param name="src2">2nd source image</param> /// <param name="pError">Pointer to the computed error.</param> /// <param name="nppStreamCtx">NPP stream context.</param> public void AverageRelativeError(NPPImage_8sC4 src2, CudaDeviceVariable <double> pError, NppStreamContext nppStreamCtx) { int bufferSize = AverageRelativeErrorGetBufferHostSize(nppStreamCtx); CudaDeviceVariable <byte> buffer = new CudaDeviceVariable <byte>(bufferSize); status = NPPNativeMethods_Ctx.NPPi.AverageRelativeError.nppiAverageRelativeError_8s_C4R_Ctx(_devPtrRoi, _pitch, src2.DevicePointerRoi, src2.Pitch, _sizeRoi, pError.DevicePointer, buffer.DevicePointer, nppStreamCtx); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "nppiAverageRelativeError_8s_C4R_Ctx", status)); buffer.Dispose(); NPPException.CheckNppStatus(status, this); }
/// <summary> /// image maximum error. User buffer is internally allocated and freed. /// </summary> /// <param name="src2">2nd source image</param> /// <param name="pError">Pointer to the computed error.</param> public void MaxError(NPPImage_8sC4 src2, CudaDeviceVariable <double> pError) { int bufferSize = MaxErrorGetBufferHostSize(); CudaDeviceVariable <byte> buffer = new CudaDeviceVariable <byte>(bufferSize); status = NPPNativeMethods.NPPi.MaximumError.nppiMaximumError_8s_C4R(_devPtrRoi, _pitch, src2.DevicePointerRoi, src2.Pitch, _sizeRoi, pError.DevicePointer, buffer.DevicePointer); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "nppiMaximumError_8s_C4R", status)); buffer.Dispose(); NPPException.CheckNppStatus(status, this); }
/// <summary> /// image maximum relative error. /// </summary> /// <param name="src2">2nd source image</param> /// <param name="pError">Pointer to the computed error.</param> /// <param name="buffer">Pointer to the user-allocated scratch buffer required for the MaximumRelativeError operation.</param> /// <param name="nppStreamCtx">NPP stream context.</param> public void MaximumRelativeError(NPPImage_8sC4 src2, CudaDeviceVariable <double> pError, CudaDeviceVariable <byte> buffer, NppStreamContext nppStreamCtx) { int bufferSize = MaximumRelativeErrorGetBufferHostSize(nppStreamCtx); if (bufferSize > buffer.Size) { throw new NPPException("Provided buffer is too small."); } status = NPPNativeMethods_Ctx.NPPi.MaximumRelativeError.nppiMaximumRelativeError_8s_C4R_Ctx(_devPtrRoi, _pitch, src2.DevicePointerRoi, src2.Pitch, _sizeRoi, pError.DevicePointer, buffer.DevicePointer, nppStreamCtx); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "nppiMaximumRelativeError_8s_C4R_Ctx", status)); NPPException.CheckNppStatus(status, this); }