【问题标题】:Using ImageMagick.NET to compare images使用 ImageMagick.NET 比较图像
【发布时间】:2012-05-14 12:12:30
【问题描述】:

我需要在 c# 中进行“模糊”图像比较 - 我过去曾使用 ImageMagick.NET 进行处理,并且知道它对这项工作有好处。

Image Magick中有一个比较命令:http://www.imagemagick.org/script/compare.php

ImageMagick.NET 中有一个 Compare(Image reference) 方法,但它似乎已被大大简化,因此无法获得详细的输出。

我需要能够做到这一点,这样我才能使用阈值匹配图像。我是否遗漏了一些东西 - 如果还没有的话,有没有办法将这些东西放入 ImageMagick.NET 中? (我绝对不是 C++ 开发人员)还是我找错树了?

【问题讨论】:

    标签: c# imagemagick image-comparison imagemagick.net


    【解决方案1】:

    如果我没有得到您的问题,请原谅我,但 IsImagesEqualSimilarityImage 不起作用?

    IsImagesEqual 返回“图像中任何单个像素的标准化最大量化误差。此距离度量标准化为 0 到 1 之间的范围。它与图像中红色、绿色和蓝色值的范围无关。

    一个小的归一化均方误差,访问为 image->normalized_mean_error,表明图像在空间布局和颜色上非常相似。"

    .NET 绑定中的对应方法是Image.Compare,它接受图像并返回布尔值。但是,如果结果为假,则在当前实例的 meanErrorPerPixel、normalizedMaxError 和 normalizedMeanError 上设置平均误差(根据上述指标)。

    这三个指标还不足以为您提供“模糊”比较的结果吗?

    【讨论】:

    • 您是从哪里得知这件事的?另外,Image 没有这些属性? meanErrorPerPixel、normalizedMaxError 和 normalizedMeanError - 我喜欢它们在哪里?
    • 我从 C/C++ API 中查找了这些属性,但您是对的 - 这些属性尚未公开,因为代码 (Image.h) 在此处显示 imagemagick.codeplex.com/SourceControl/changeset/view/…。您需要将适当的代码添加到这些绑定中才能使用此功能或请求维护人员为您执行此操作。不过,这应该是一个相当简单的添加。遵循与该文件末尾定义的 Rows 和 Height 属性相同的模式。
    • 如果你自己实现了它,请提供一个补丁,以便维护者可以添加该功能;-)
    • 给你,这是一个添加了属性的补丁 (pastebin.com/Rbb8L5RC)。使用 Subversion 下载源代码,还可以下载二进制文件(包括标题)。将 include8 和 include16 复制到 sln 旁边的 ImageMagickNET 文件夹中,然后简单地将提供的补丁应用到 Image.h 并构建。我也会将此贡献给维护者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 2016-08-06
    相关资源
    最近更新 更多