OpencvSharp在WPF的Image控件中显示图像

OpencvSharp在WPF的Image控件中显示图像

2023年7月19日发(作者:)

OpencvSharp在WPF的Image控件中显⽰图像1、安装OpencvSharp我使⽤的是VS2013 社区版,安装OpencvSharp3.0在线安装⽅法:进⼊Tools,打开NuGet的包管理器搜索Opencv安装之后就可以使⽤,⽆需再做其他配置。但是有个问题就是每新建⼀个解决⽅案就得重新下载安装,对⽹速慢的⼩伙伴很不友好。离线安装⽅法:打开⼀个已经安装过OpencvSharp3的解决⽅案的⽬录,在Package⽬录下有OpencvSharp的安装包,后缀为nupkg。打开新建的未安装OpencvSharp的解决⽅案,进到Tools,NuGet管理器,选择左下⾓的Setting。添加⼀个package source,并将其source设置为刚才OpencvSharp安装包所在的⽬录即可,然后取⼀个好记得名字。回到NuGet包管理界⾯,会发现Online⾥多了⼀个Package Source 选项,这个选项⾥可以看到刚才⽬录下的安装包,点击安装即可。2、建⽴WPF⼯程新建WPF⼯程,拖⼊两个button,⼀个Image控件。为了使⽤OpencvSharp,需要在⽂件开头添加:using OpenCvSharp;之后在button1的响应函数下添加图⽚显⽰的代码:Mat image = new Mat(@"", );("Demo", image);y(0);这样就实现了图⽚显⽰的功能,但是图⽚会显⽰在⼀个弹出的窗⼝上,⽽不会显⽰在Image控件上。3、Bitmap 转 BitmapImage将图⽚显⽰在Image控件上很简单,只需要设置Image控件的source属性,可参考:WPF中使⽤Image控件显⽰图⽚ - CSDN博客 = BitmapImage;因此需要把Mat类型转化为BitmapImage类型。先把Mat转化为Bitmap类型:public Bitmap MatToBitmap(Mat image) { return ap(image); }再转化为BitmapImage类型。public BitmapImage MatToBitmapImage(Mat image) { Bitmap bitmap = MatToBitmap(image); using (MemoryStream stream = new MemoryStream()) { (stream, ); // 坑点:格式选Bmp时,不带透明度 on = 0; BitmapImage result = new BitmapImage(); nit(); // According to MSDN, "The default OnDemand cache option retains access to the stream until the image is needed." // Force the bitmap to load right now so we can dispose the stream. ption = ; Source = stream; t(); (); return result; } }最后在button2的响应函数中添加显⽰图像的代码:private void button2_Click(object sender, RoutedEventArgs e) { try { Mat image = new Mat(@"", ); = MatToBitmapImage(image); } catch(Exception exp) { (ng()); return; }

}参考⽂献:c# 4.0 - How can I convert Mat to Bitmap using OpenCVSharp? - Stack Overflow【C#/WPF】Bitmap、BitmapImage、ImageSource 、byte[]转换问题 - CSDN博客4、添加引⽤:using和reference上⼀节中⽤到的变量类型对应的命名空间如下:using g; //使⽤BitMapImage类型using OpenCvSharp; //OpencvSharpusing g; //使⽤Bitmap类型using ; //使⽤MemoryStream类型如果代码中添加了命名空间还是报错,就需要⼿动添加reference。⾸先看看⽤到的命名空间是否在现有的reference中:如果没有,就要⼿动Add Reference…⽐如我新建的项⽬中就没有⾃动添加Drawing这个命名空间:

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689723674a281223.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信