mirror of https://github.com/emgucv/emgucv.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
189 lines
7.5 KiB
189 lines
7.5 KiB
//----------------------------------------------------------------------------
|
|
// Copyright (C) 2004-2024 by EMGU Corporation. All rights reserved.
|
|
//----------------------------------------------------------------------------
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using Emgu.CV;
|
|
using Emgu.CV.Cuda;
|
|
using Emgu.CV.CvEnum;
|
|
using Emgu.CV.Dnn;
|
|
using Emgu.CV.ML;
|
|
//using Backend = Emgu.CV.Dnn.Backend;
|
|
|
|
|
|
namespace MauiDemoApp
|
|
{
|
|
public class AboutPage : ContentPage
|
|
{
|
|
public AboutPage()
|
|
{
|
|
#if DEBUG
|
|
CvInvoke.LogLevel = LogLevel.Verbose; //LogLevel.Debug;
|
|
#endif
|
|
|
|
String lineBreak = "<br/>";
|
|
|
|
String openclTxt = String.Format("Has OpenCL: {0}", CvInvoke.HaveOpenCL);
|
|
if (CvInvoke.HaveOpenCL)
|
|
{
|
|
openclTxt = String.Format("{0}{1}Use OpenCL: {2}{1}<textarea rows=\"5\">{3}</textarea>{1}",
|
|
openclTxt, lineBreak,
|
|
CvInvoke.UseOpenCL,
|
|
CvInvoke.OclGetPlatformsSummary());
|
|
}
|
|
|
|
String cudaTxt = String.Format("Has CUDA: {0}", CudaInvoke.HasCuda);
|
|
if (CudaInvoke.HasCuda)
|
|
{
|
|
cudaTxt = String.Format("{0}{1}<textarea rows=\"5\">{2}</textarea>{1}",
|
|
cudaTxt,
|
|
lineBreak,
|
|
CudaInvoke.GetCudaDevicesSummary());
|
|
}
|
|
|
|
var openCVConfigDict = CvInvoke.ConfigDict;
|
|
bool haveDNN = (openCVConfigDict["HAVE_OPENCV_DNN"] != 0);
|
|
String dnnText;
|
|
if (haveDNN)
|
|
{
|
|
var dnnBackends = DnnInvoke.AvailableBackends;
|
|
List<String> dnnBackendsText = new List<string>();
|
|
foreach (var dnnBackend in dnnBackends)
|
|
{
|
|
dnnBackendsText.Add(String.Format("<p>{0} - {1}</p>", dnnBackend.Backend, dnnBackend.Target));
|
|
}
|
|
|
|
dnnText = String.Join("", dnnBackendsText.ToArray());
|
|
}
|
|
else
|
|
{
|
|
dnnText = "DNN is not available";
|
|
}
|
|
|
|
bool haveVideoio = (openCVConfigDict["HAVE_OPENCV_VIDEOIO"] != 0);
|
|
|
|
String osDescription = Emgu.Util.Platform.OperationSystem.ToString();
|
|
|
|
String parallelText;
|
|
List<String> parallelBackendText = new List<string>();
|
|
foreach (var parallelBackend in CvInvoke.AvailableParallelBackends)
|
|
{
|
|
parallelBackendText.Add(String.Format("<p>{0}</p>", parallelBackend));
|
|
}
|
|
|
|
parallelText = String.Join("", parallelBackendText.ToArray());
|
|
|
|
String tesseractText;
|
|
String tesseractVersion = String.Empty;
|
|
bool haveTesseract = (openCVConfigDict["HAVE_EMGUCV_TESSERACT"] != 0);
|
|
|
|
if (haveTesseract)
|
|
{
|
|
tesseractVersion = Emgu.CV.OCR.Tesseract.VersionString;
|
|
if (tesseractVersion.Length == 0)
|
|
haveTesseract = false;
|
|
}
|
|
|
|
if (haveTesseract)
|
|
{
|
|
tesseractText = String.Format("Version: {0}", tesseractVersion);
|
|
}
|
|
else
|
|
{
|
|
tesseractText = "Tesseract OCR is not available";
|
|
}
|
|
|
|
Content =
|
|
new Microsoft.Maui.Controls.ScrollView()
|
|
{
|
|
Content =
|
|
new WebView()
|
|
{
|
|
//WidthRequest = 1000,
|
|
//HeightRequest = 1000,
|
|
MinimumWidthRequest = 100,
|
|
MinimumHeightRequest = 100,
|
|
Source = new HtmlWebViewSource()
|
|
{
|
|
Html =
|
|
@"<html>
|
|
<head>
|
|
<style>body { background-color: #EEEEEE; }</style>
|
|
<style type=""text/css"">
|
|
textarea { width: 100%; margin: 0; padding: 0; border - width: 0; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<H2> Emgu CV for MAUI</H2>
|
|
<a href=http://www.emgu.com>Visit our website</a> <br/><br/>
|
|
<a href=mailto:support@emgu.com>Email Support</a> <br/><br/>
|
|
<H4> OpenCL Info </H4>
|
|
" + openclTxt + @"
|
|
<H4> Cuda Info </H4>
|
|
" + cudaTxt + @"
|
|
<H4> OS: </H4>
|
|
" + osDescription + @"
|
|
<H4> Available Parallel Backends: </H4>
|
|
" + parallelText + @"
|
|
<H4> Dnn Backends: </H4>
|
|
" + dnnText + @"
|
|
<H4> Capture Backends (VideoCapture from device): </H4>
|
|
" + (haveVideoio ? GetBackendInfo(CvInvoke.Backends) : "Videoio backend not supported.") + @"
|
|
<H4> Stream Backends (VideoCapture from file/Stream): </H4>
|
|
" + (haveVideoio ? GetBackendInfo(CvInvoke.StreamBackends) : "Videoio backend not supported.") + @"
|
|
<H4> VideoWriter Backends: </H4>
|
|
" + (haveVideoio ? GetBackendInfo(CvInvoke.WriterBackends) : "Videoio backend not supported.") + @"
|
|
<H4> Tesseract OCR: </H4>
|
|
" + tesseractText + @"
|
|
<H4> Build Info </H4>
|
|
<textarea rows=""30"">"
|
|
+ CvInvoke.BuildInformation + @"
|
|
</textarea>
|
|
<H4> RuntimeInformation.OSArchitecture: </H4>
|
|
" + RuntimeInformation.OSArchitecture + @"
|
|
<H4> RuntimeInformation.OSDescription: </H4>
|
|
" + RuntimeInformation.OSDescription + @"
|
|
<H4> RuntimeInformation.FrameworkDescription: </H4>
|
|
" + RuntimeInformation.FrameworkDescription + @"
|
|
<H4> RuntimeInformation.ProcessArchitecture: </H4>
|
|
" + RuntimeInformation.ProcessArchitecture + @"
|
|
<H4> RuntimeInformation.RuntimeIdentifier: </H4>
|
|
" + RuntimeInformation.RuntimeIdentifier + @"
|
|
<H4> Microsoft.Maui.Devices.DeviceInfo.Current.Model: </H4>
|
|
" + Microsoft.Maui.Devices.DeviceInfo.Current.Model + @"
|
|
<H4> Microsoft.Maui.Devices.DeviceInfo.Current.Manufacturer: </H4>
|
|
" + Microsoft.Maui.Devices.DeviceInfo.Current.Manufacturer + @"
|
|
<H4> Microsoft.Maui.Devices.DeviceInfo.Current.Name: </H4>
|
|
" + Microsoft.Maui.Devices.DeviceInfo.Current.Name + @"
|
|
<H4> Microsoft.Maui.Devices.DeviceInfo.Current.VersionString: </H4>
|
|
" + Microsoft.Maui.Devices.DeviceInfo.Current.VersionString + @"
|
|
<H4> Microsoft.Maui.Devices.DeviceInfo.Current.Idiom: </H4>
|
|
" + Microsoft.Maui.Devices.DeviceInfo.Current.Idiom + @"
|
|
<H4> Microsoft.Maui.Devices.DeviceInfo.Current.Platform: </H4>
|
|
" + Microsoft.Maui.Devices.DeviceInfo.Current.Platform+ @"
|
|
<H4> Microsoft.Maui.Devices.DeviceInfo.Current.DeviceType: </H4>
|
|
" + Microsoft.Maui.Devices.DeviceInfo.Current.DeviceType+ @"
|
|
</body>
|
|
</html>"
|
|
}
|
|
|
|
}
|
|
};
|
|
Content.BackgroundColor = Color.FromRgb(1.0, 0.0, 0.0);
|
|
}
|
|
|
|
private static String GetBackendInfo(Emgu.CV.Backend[] backends)
|
|
{
|
|
List<String> backendsText = new List<string>();
|
|
foreach (var backend in backends)
|
|
{
|
|
backendsText.Add(String.Format("<p>{0} - {1}</p>", backend.ID, backend.Name));
|
|
}
|
|
|
|
return String.Join("", backendsText.ToArray());
|
|
}
|
|
}
|
|
}
|