C# OpenCVSharp4 draw mask on picture with specified x, y, width and height

Install-Package OpenCVSharp4;
Install-Package OpenCVSharp4.runtime.win;

 

//csproj file
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
  
   <ItemGroup>
    <PackageReference Include="OpenCVSharp4" Version="4.11.0.20250507" />
    <PackageReference Include="Opencvsharp4.runtime.win" Version="4.11.0.20250507" />
  </ItemGroup>

</Project>

 

 

static void DrawMaskInPicture(string srcUrl = @"../../../Images/1.jpg", int x = 100, int y = 100,
    int width = 2000, int height = 2000, string maskFilePath = @"mask.jpg")
{
    using (Mat img = new Mat(srcUrl, ImreadModes.Color))
    {
        Rect maskRect=new Rect(x,y,width,height);
        img.Rectangle(maskRect, Scalar.Cyan, -1);
        img.SaveImage(maskFilePath);
        Cv2.NamedWindow("Original", WindowFlags.Normal);
        Cv2.NamedWindow("Mask", WindowFlags.Normal);

        // Resize windows to fit screen
        Cv2.ResizeWindow("Original", screenWidth, screenHeight);
        Cv2.ResizeWindow("Mask", screenWidth, screenHeight);

        using(var src=new Mat(srcUrl,ImreadModes.Color))
        {
            Cv2.ImShow("Original", src);
        }

        using(var dst=new Mat(maskFilePath,ImreadModes.Color))
        {
            Cv2.ImShow("Mask", dst);
        }

        Console.WriteLine($"Original:{srcUrl},mask:{maskFilePath}");
        Cv2.WaitKey(0);
        Cv2.DestroyAllWindows();               
    }
}

 

 

image

 

posted @ 2025-10-12 16:41  FredGrit  阅读(5)  评论(0)    收藏  举报