zoukankan      html  css  js  c++  java
  • 使用opencvsharp通过mvvm在image中显示图片

    在wpf mvvm框架中,通过Image控件的 Source属性绑定BitmapImage动态显示图片

    1.MainWindowVIewModel.cs

    using System.Windows.Media.Imaging; //使用BitMapImage类型
    using System.Drawing;

    //Mat转Bitmap

    1         public Bitmap MatToBitmap(Mat image)
    2         {
    3             return OpenCvSharp.Extensions.BitmapConverter.ToBitmap(image);
    4         }
    //Mat转BitmapImage
    1
    public BitmapImage MatToBitmapImage(Mat image) 2 { 3 Bitmap bitmap = MatToBitmap(image); 4 using (MemoryStream stream = new MemoryStream()) 5 { 6 bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png); 7 8 stream.Position = 0; 9 BitmapImage result = new BitmapImage(); 10 result.BeginInit(); 11 // According to MSDN, "The default OnDemand cache option retains access to the stream until the image is needed." 12 // Force the bitmap to load right now so we can dispose the stream. 13 result.CacheOption = BitmapCacheOption.OnLoad; 14 result.StreamSource = stream; 15 result.EndInit(); 16 result.Freeze(); 17 return result; 18 } 19 }

    //定义数据属性

     1         private BitmapImage img;
     2 
     3         public BitmapImage Img
     4         {
     5             get { return img; }
     6             set
     7             {
     8                 img = value;
     9                 this.RaisePropertyChanged("Img");
    10             }
    11         }
    1                 Mat image=new Mat(FileNames[i],ImreadModes.Unchanged); //通过路径读入Mat类型的image
    3 this.Img = MatToBitmapImage(image); //将image转换为BitmapImage传给Img,Img与Source绑定。

    //2.MainWindow.xaml

    1         <Image HorizontalAlignment="Left" Grid.Row="1" Grid.Column="0" Margin="20,20,0,0" Width="800" Source="{Binding Img}" Grid.RowSpan="2" Height="800" VerticalAlignment="Top"/>
  • 相关阅读:
    float及清除浮动
    HTML meta标签总结与属性使用介绍
    jQuery相关知识
    FullCalendar日程设置
    Python基础知识
    波段选择
    CSS基础知识
    稀疏表示的高光谱分类
    Sass基本特性
    [Sass]混合宏
  • 原文地址:https://www.cnblogs.com/sclu/p/12176680.html
Copyright © 2011-2022 走看看