|
@@ -9,6 +9,7 @@ using System.Threading.Tasks;
|
|
|
using System.Windows.Input;
|
|
using System.Windows.Input;
|
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Media.Imaging;
|
|
|
using System.Xml.Linq;
|
|
using System.Xml.Linq;
|
|
|
|
|
+using VisionDesigner.MVDCNNDetect;
|
|
|
|
|
|
|
|
namespace MvvmScaffoldFrame48.ViewModel.ViewModel
|
|
namespace MvvmScaffoldFrame48.ViewModel.ViewModel
|
|
|
{
|
|
{
|
|
@@ -42,12 +43,12 @@ namespace MvvmScaffoldFrame48.ViewModel.ViewModel
|
|
|
public void Test(object obj)
|
|
public void Test(object obj)
|
|
|
{
|
|
{
|
|
|
// 创建一个 Bitmap 对象
|
|
// 创建一个 Bitmap 对象
|
|
|
- Bitmap bitmap = new Bitmap("D:\\work\\MvvmScaffoldFrame48\\MvvmScaffoldFrame48\\MvvmScaffoldFrame48\\testfile\\testimage\\2025-08-04-13-14-00-655.jpg");
|
|
|
|
|
|
|
+ Bitmap bitmap = new Bitmap("D:\\work\\MvvmScaffoldFrame48\\MvvmScaffoldFrame48\\MvvmScaffoldFrame48\\testfile\\testimage\\2025-08-04-13-28-45-807.jpg");
|
|
|
|
|
|
|
|
cPUDeepObject.LoadImage(bitmap);
|
|
cPUDeepObject.LoadImage(bitmap);
|
|
|
cPUDeepObject.LoadDeepModel("D:\\work\\MvvmScaffoldFrame48\\MvvmScaffoldFrame48\\MvvmScaffoldFrame48\\testfile\\model\\Detect_20250818T1328175385.bin");
|
|
cPUDeepObject.LoadDeepModel("D:\\work\\MvvmScaffoldFrame48\\MvvmScaffoldFrame48\\MvvmScaffoldFrame48\\testfile\\model\\Detect_20250818T1328175385.bin");
|
|
|
var result = cPUDeepObject.RunDetect();
|
|
var result = cPUDeepObject.RunDetect();
|
|
|
-
|
|
|
|
|
|
|
+ PrintRectToBitmap(result, ref bitmap);
|
|
|
// 将 Bitmap 转换为 BitmapImage
|
|
// 将 Bitmap 转换为 BitmapImage
|
|
|
BitmapImage bitmapImage = ConvertToBitmapImage(bitmap);
|
|
BitmapImage bitmapImage = ConvertToBitmapImage(bitmap);
|
|
|
|
|
|
|
@@ -84,13 +85,29 @@ namespace MvvmScaffoldFrame48.ViewModel.ViewModel
|
|
|
var bitmapImage = new BitmapImage();
|
|
var bitmapImage = new BitmapImage();
|
|
|
bitmapImage.BeginInit();
|
|
bitmapImage.BeginInit();
|
|
|
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
|
|
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
|
|
|
- bitmapImage.DecodePixelWidth = 1200; // 设置目标分辨率宽度
|
|
|
|
|
- bitmapImage.DecodePixelHeight = 600; // 保持宽高比
|
|
|
|
|
|
|
+ bitmapImage.DecodePixelWidth = 1440; // 设置目标分辨率宽度
|
|
|
|
|
+ bitmapImage.DecodePixelHeight = 1080; // 保持宽高比
|
|
|
bitmapImage.StreamSource = memory;
|
|
bitmapImage.StreamSource = memory;
|
|
|
bitmapImage.EndInit();
|
|
bitmapImage.EndInit();
|
|
|
return bitmapImage;
|
|
return bitmapImage;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public void PrintRectToBitmap(List<CNNDetectPredInfo> RectData , ref Bitmap bitmap)
|
|
|
|
|
+ {
|
|
|
|
|
+ using (Graphics g = Graphics.FromImage(bitmap))
|
|
|
|
|
+ {
|
|
|
|
|
+ var redPen = new Pen(Color.Red, 2);
|
|
|
|
|
+ var GreenPen = new Pen(Color.SeaGreen, 2);
|
|
|
|
|
+
|
|
|
|
|
+ foreach (var item in RectData)
|
|
|
|
|
+ {
|
|
|
|
|
+ int roix = Convert.ToInt32(item.Box.CenterX - (item.Box.Width/2));
|
|
|
|
|
+ int roiy = Convert.ToInt32(item.Box.CenterY - (item.Box.Height/2));
|
|
|
|
|
+ g.DrawRectangle(item.LabelName== "A坏药"?redPen:GreenPen, new Rectangle(roix, roiy, (int)item.Box.Width, (int)item.Box.Height));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
#endregion
|
|
#endregion
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|