如何在 Xamarin Forms 中打开图像并将其与 Emgu Cv/OpenCvSharp 一起使用?
Posted
技术标签:
【中文标题】如何在 Xamarin Forms 中打开图像并将其与 Emgu Cv/OpenCvSharp 一起使用?【英文标题】:How to open an image and use it with EmguCv/OpenCvSharp in Xamarin Forsm? 【发布时间】:2021-02-26 12:55:19 【问题描述】:我正在使用 Xamarin Forms 开发应用程序,我需要处理图像,但我无法使用 OpenCvSharp 或 EmguCv。
当我尝试打开发送路径的图片时,它不起作用并崩溃:
这是我的代码:
var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions
CompressionQuality = 100,
PhotoSize = PhotoSize.Large
);
Mat OriginalImage = new Mat(file.Path, ImreadModes.AnyColor);
当我运行我的应用程序时,它不起作用。
你知道任何解决方案或任何教程吗?
【问题讨论】:
什么异常导致崩溃? System.TypeInitializationException Message=“OpenCvSharp.NativeMethods”的类型初始化程序引发了异常。 是否有 InnerException? 我怎么能看到内部异常? 异常对象有一个 InnerException 属性 【参考方案1】:我对OpenCvSharp不是很熟悉,但是如果你想在Emgucv中做,你可以使用下面的代码。
//Create a string to hold the file location
string fileLocation;
//Create an openfiledialog object to select a photo
OpenFileDialog dialog = new OpenFileDialog
InitialDirectory = Directory.GetParent(Directory.GetParent
(Environment.CurrentDirectory).ToString()).ToString(),
Title = "Browse Images",
CheckFileExists = true,
CheckPathExists = true,
FilterIndex = 2,
RestoreDirectory = true,
ReadOnlyChecked = true,
ShowReadOnly = true
;
if (dialog.ShowDialog() == true)
fileLocation = dialog.FileName;
Mat input = CvInvoke.Imread(fileLocation, ImreadModes.AnyColor);
【讨论】:
以上是关于如何在 Xamarin Forms 中打开图像并将其与 Emgu Cv/OpenCvSharp 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Forms:获取存储在共享项目中的图像文件的路径?
在 Xamarin.Forms 中获取图像或 ImageSource 的字节 [] / 流?