【发布时间】:2023-03-04 22:03:01
【问题描述】:
我在 UWP 项目中使用portable.aforge.imaging 进行图像比较。 ProcessImage 方法需要位图类型作为参数。我正在使用 System.Drawing 访问 Bitmap 类,但是当我尝试实例化时出现错误:“Bitmap 不包含采用 1 个参数的构造函数”
UWP 上是否提供常规位图类?如果是,我做错了什么?如果没有,我必须使用 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
}
}
【问题讨论】:
-
这个
System.Drawing.Bitmap不是来自 .NET Framework,而是带有portable.aforge.imaging(在 Shim.Drawing 中)。查看它的代码,您似乎只能通过public static explicit operator Bitmap(WriteableBitmap writeableBitmap)从 WriteableBitmap 进行强制转换来创建实例。或者可能通过Image.FromStream()创建一个Image实例并将其转换为位图(不确定是否有效)。
标签: win-universal-app aforge image-comparison