我想比较两张图片,生成并保存一张显示所有已发现差异的图片。
例如: 我使用ImageMagick:https://magick.codeplex.com/,但是他们没有完整的C#文档。我只找到了:http://www.imagemagick.org/Usage/compare/ 例如,这段代码显示0-1之间的值,表示图像的相似度:
但是我该如何使用ImageMagick比较图像并将结果保存,就像上面的示例和他们网站中所示的那样?
更新: 在dlemstra的帮助下,我编写了以下代码,并生成了应该显示与上面示例相同的差异的图像。 MagickImage img1 = new MagickImage(@"C:\test\Image1.jpg"); MagickImage img2 = new MagickImage(@"C:\test\Image2.jpg"); MagickImage img3 = new MagickImage(@"C:\test\Image3.jpg"); MagickImage img4 = new MagickImage(@"C:\test\DiffImage.jpg"); MagickImage img5 = new MagickImage(@"C:\test\DiffImage.jpg");
奇怪的结果是:当我比较以下两个图像时,只有标记的差异: 这是我得到的结果(而不像上面的“imageMagick”示例)
例如: 我使用ImageMagick:https://magick.codeplex.com/,但是他们没有完整的C#文档。我只找到了:http://www.imagemagick.org/Usage/compare/ 例如,这段代码显示0-1之间的值,表示图像的相似度:
MagickImage img1 = new MagickImage(@"C:\test\Image1.jpg");
MagickImage img2 = new MagickImage(@"C:\test\Image2.jpg");
double diff = img1.Compare(img2,new ErrorMetric());
但是我该如何使用ImageMagick比较图像并将结果保存,就像上面的示例和他们网站中所示的那样?
更新: 在dlemstra的帮助下,我编写了以下代码,并生成了应该显示与上面示例相同的差异的图像。 MagickImage img1 = new MagickImage(@"C:\test\Image1.jpg"); MagickImage img2 = new MagickImage(@"C:\test\Image2.jpg"); MagickImage img3 = new MagickImage(@"C:\test\Image3.jpg"); MagickImage img4 = new MagickImage(@"C:\test\DiffImage.jpg"); MagickImage img5 = new MagickImage(@"C:\test\DiffImage.jpg");
var imgDiff = new MagickImage();
img1.Compare(img2, new ErrorMetric(), imgDiff);
imgDiff.Write(@"C:\test\Diff4.jpg");
img1.Compare(img3, new ErrorMetric(), imgDiff);
imgDiff.Write(@"C:\test\Diff5.jpg");
img1.Compare(img4, new ErrorMetric(), imgDiff);
imgDiff.Write(@"C:\test\Diff6.jpg");
img5.Compare(img4, new ErrorMetric(), imgDiff);
imgDiff.Write(@"C:\test\Diff7.jpg");
奇怪的结果是:当我比较以下两个图像时,只有标记的差异: 这是我得到的结果(而不像上面的“imageMagick”示例)