分水岭图像分割中的Win32.memcpy错误

时间:2012-02-24 04:02:08

标签: .net image image-processing watershed

我正试图实施分水岭图像分割,如前程序员所说:

Watershed using c# or c++

我也试过添加FilterGrayToGray.cs代码,但是我遇到了win32.memcpy错误

错误显示:“此上下文中不存在名称win32”

如果我们将Win32.memcpy转换为Microsoft.Win32.memcpy,那么它会说“命名空间中不存在memcpy”

1 个答案:

答案 0 :(得分:2)

memcpy不是.NET Framework的一部分 - memcpy是一个非托管的本机API,需要创建一个p / Invoke定义。 memcpy的定义必须位于不同的文件中。

请参阅以下示例:

/// <summary>
/// Windows API functions and structures.
/// </summary>
internal static class Win32
{
    /// <summary>
    /// Copy a block of memory.
    /// </summary>
    ///
    /// <param name="dst">Destination pointer.</param>
    /// <param name="src">Source pointer.</param>
    /// <param name="count">Memory block's length to copy.</param>
    ///
    /// <returns>Return's the value of <b>dst</b> - pointer to destination.</returns>
    ///
    [DllImport( "ntdll.dll", CallingConvention = CallingConvention.Cdecl )]
    public static extern IntPtr memcpy(
        IntPtr dst,
        IntPtr src,
        UIntPtr count );
    }
}