我使用portable.aforge.imaging在UWP项目上进行图像比较。 ProcessImage方法需要Bitmap类型作为参数。我使用System.Drawing来访问Bitmap类,但是在我尝试实例化时遇到错误:" Bitmap不包含一个带有1个参数的构造函数"
UWP上是否有常规的Bitmap类?如果是的话,我做错了什么?如果没有,我还需要使用aforge的ProcessImage进行比较吗?
private void TestAForge()
{
ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0);
Bitmap image, template;
//fetch Bitmaps
image = new Bitmap("MyDir/myImage.jpg");
template = new Bitmap("MyDir/myImage.jpg");
// compare two images
TemplateMatch[] matchings = tm.ProcessImage(image, template);
// check similarity level
TextBlock.Text = "" + matchings[0].Similarity;
if (matchings[0].Similarity > 0.95)
{
// do something with quite similar images
}
}
答案 0 :(得分:0)
是的,通用Windows平台上的 AForge 的 Shim.Drawing 程序集可以使用System.Drawing.Bitmap
。
正如 Clemens 建议的那样,您需要从WriteableBitmap
投射到System.Drawing.Bitmap
,对{{1}应用 AForge 成像操作最后转回Bitmap
(或WriteableBitmap
或BitmapSource
)。
可以在accord-samples存储库中的文件MainPage.xaml.cs中的 Corner.SURF.Windows 示例中找到实现此工作流的示例。