Skip to content

Commit

Permalink
Added CvInvoke.HasNonZero
Browse files Browse the repository at this point in the history
  • Loading branch information
emgucv committed Jul 19, 2023
1 parent caa1d47 commit 3ddc496
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Emgu.CV.Extern/core/core_c.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,10 @@ void cveMultiply(cv::_InputArray* src1, cv::_InputArray* src2, cv::_OutputArray*
{
cv::multiply(*src1, *src2, *dst, scale, dtype);
}
bool cveHasNonZero(cv::_InputArray* src)
{
return cv::hasNonZero(*src);
}
int cveCountNonZero(cv::_InputArray* src)
{
return cv::countNonZero(*src);
Expand Down
1 change: 1 addition & 0 deletions Emgu.CV.Extern/core/core_c_extra.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ CVAPI(void) cveAdd(cv::_InputArray* src1, cv::_InputArray* src2, cv::_OutputArra
CVAPI(void) cveSubtract(cv::_InputArray* src1, cv::_InputArray* src2, cv::_OutputArray* dst, cv::_InputArray* mask, int dtype);
CVAPI(void) cveDivide(cv::_InputArray* src1, cv::_InputArray* src2, cv::_OutputArray* dst, double scale, int dtype);
CVAPI(void) cveMultiply(cv::_InputArray* src1, cv::_InputArray* src2, cv::_OutputArray* dst, double scale, int dtype);
CVAPI(bool) cveHasNonZero(cv::_InputArray* src);
CVAPI(int) cveCountNonZero(cv::_InputArray* src);
CVAPI(void) cveFindNonZero(cv::_InputArray* src, cv::_OutputArray* idx);
CVAPI(void) cveMin(cv::_InputArray* src1, cv::_InputArray* src2, cv::_OutputArray* dst);
Expand Down
15 changes: 15 additions & 0 deletions Emgu.CV/PInvoke/CvInvokeCore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,21 @@ public static void Max(IInputArray src1, IInputArray src2, IOutputArray dst)
[DllImport(ExternLibrary, CallingConvention = CvInvoke.CvCallingConvention)]
private static extern void cveMax(IntPtr src1, IntPtr src2, IntPtr dst);

/// <summary>
/// Checks for the presence of at least one non-zero array element.
/// </summary>
/// <param name="arr">Single-channel array.</param>
/// <returns>Whether there are non-zero elements in src</returns>
public static bool HasNonZero(IInputArray arr)
{
using (InputArray iaArr = arr.GetInputArray())
return cveHasNonZero(iaArr);
}

[DllImport(ExternLibrary, CallingConvention = CvInvoke.CvCallingConvention)]
[return: MarshalAs(CvInvoke.BoolMarshalType)]
private static extern bool cveHasNonZero(IntPtr arr);

/// <summary>
/// Returns the number of non-zero elements in arr:
/// result = sumI arr(I)!=0
Expand Down

0 comments on commit 3ddc496

Please sign in to comment.