从扫描的图像中删除黑色边框 c#

Remove Black Border From Scanned Image c#

我有一个从扫描仪扫描图像的应用程序,但有些扫描仪在保存的图像周围放置了黑色边框。 我怎样才能去掉那个黑色边框? 非常感谢您的参与。

我在过去使用 Magick.NET 库处理图像时运气不错。它在 Codeplex 上可用,或者您可以在 Visual Studio 中使用 NuGet 安装它。该库的文档有点稀疏,但过去对我很有帮助。

根据您正在处理的图像的确切性质,您可以做一些简单的事情,比如剪掉边框所在的边缘,然后添加白色(或任何颜色;我只是假设您正在扫描文本文档或其他东西)边框以使图像恢复到标准尺寸。如果具有标准化尺寸并不重要,那么您当然可以只裁剪图像。如果这听起来像是一个可行的解决方案,那么这里有一些代码应该可以满足您的需求:

using (MagickImage image = new MagickImage(@"path_to_original"))
{
    int width = image.Width, height = image.Height;
    image.Crop(width - 800, height - 800);

    //if the image needs to be brought back up to a standarized size
    image.BorderColor = new ColorRGB(System.Drawing.Color.White);
    image.Border(100, 100);

    image.Write(@"path_to_cropped_image_with_no_more_black_border_around_it");
}

当然,您需要为需要裁剪的宽度添加自己的值 off/add。