Install-Package OpenCVSharp4
Install-Package OpenCVSharp4.runtime.win
using System.IO;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using OpenCvSharp;
using Rect = OpenCvSharp.Rect;
using Window = System.Windows.Window;
namespace WpfApp52
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Visibility = Visibility.Hidden;
var imgs = Directory.GetFiles(@"../../../Images");
foreach(var imgFile in imgs)
{
OpenCVShowImg(imgFile);
}
Cv2.DestroyAllWindows();
}
void OpenCVShowImg(string imgUrl)
{
Mat mat = Cv2.ImRead(imgUrl, ImreadModes.Color);
if(mat==null ||mat.Empty())
{
MessageBox.Show($"Read {imgUrl} failed!");
return;
}
string winName = "image";
Cv2.NamedWindow(winName, WindowFlags.GuiExpanded );
Cv2.SetWindowProperty(winName, WindowPropertyFlags.Fullscreen, (double)WindowFlags.FullScreen);
Rect winRect= Cv2.GetWindowImageRect(winName);
int winWidth = winRect.Width;
int winHeight = winRect.Height;
double scaleX = (double)winHeight / mat.Cols;
double scaleY = (double)winHeight / mat.Rows;
double scale = Math.Min(scaleX, scaleY);
Mat resizeMat = new Mat();
Cv2.Resize(mat, resizeMat, new OpenCvSharp.Size(0, 0), scaleX, scaleY, InterpolationFlags.Area);
Cv2.ImShow(winName, resizeMat);
Cv2.WaitKey(0);
mat.Release();
resizeMat.Release();
}
}
}
![image]()
![image]()