dot-imaging, 简易. NET 成像便携式平台

分享于 

7分钟阅读

GitHub

  繁體 雙語
The only .NET image IO framework you need.
  • 源代码名称:dot-imaging
  • 源代码网址:http://www.github.com/dajuric/dot-imaging
  • dot-imaging源代码文档
  • dot-imaging源代码下载
  • Git URL:
    git://www.github.com/dajuric/dot-imaging.git
    Git Clone代码到本地:
    git clone http://www.github.com/dajuric/dot-imaging
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/dajuric/dot-imaging
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    DotImaging logo

    NuGet packages versionNuGet packages version

    DotImaging -. NET array 作为成像对象
    框架将. NET 原生 array 作为主要映像对象,通过扩展提供扩展性支持,并提供统一的平台抽象映像 IO API。

    新闻

    ,所以为什么?

    • 利用现有的.NET 结构
    • portable*
    • 过敏体质
    • 那么简单的,你不需要帮助文件

    *IO 和绘图assemlies依赖于 OpenCV

    库/nuget软件包

    内核
    • DotImaging.Image .NET 图像 array 扩展。 颜色和深度转换用于快速像素操作的苗条非托管结构。

      教程:端口通用映像库。

    
    
    
    
    //convert to grayscale and flip
    
    
    Bgr<byte>[,] image = ImageIO.LoadColor("sample.jpg").Clone(); //IO package
    
    
    Gray<byte>[,] grayIm = image.ToGray()
    
    
    . Flip(FlipDirection.Horizontal);
    
    
    
    
    • DotImaging.Primitives2D 端口 2D 绘制基元( 点,大小,rectangle,。)
    IO
    • DotImaging.IO 用于IO图像访问( 照相机,文件,图像目录)的统一 API。 便携式图像加载/保存。

      教程:端口图像 IO。

    
    
    
    
    var reader = new FileCapture("sample.mp4");
    
    
    reader.Open();
    
    
    
    Bgr<byte>[,] frame = null;
    
    
    while(true)
    
    
    {
    
    
     reader.ReadTo(ref frame);
    
    
     if (frame == null)
    
    
     break;
    
    
    
     frame.Show(scaleForm: true); //UI package
    
    
    }
    
    
    
    reader.Close();
    
    
    
    
    • DotImaging.IO.Web 图像或者视频下载/流媒体( 直接视频链接或者Youtube链接)。
    
    
    
    
    //------get an image from the Web
    
    
    new Uri("http://vignette3.wikia.nocookie.net/disney/images/5/5d/Lena_headey_.jpg")
    
    
    . GetBytes().DecodeAsColorImage().Show(); //(Show - UI package)
    
    
    
    //------stream a video from Youtube
    
    
    var pipeName = new Uri("https://www.youtube.com/watch?v=Vpg9yizPP_g").NamedPipeFromYoutubeUri(); //Youtube
    
    
    var reader = new FileCapture(String.Format(@".pipe{0}", pipeName))//IO package
    
    
    
    
    
    //... (regular stream reading - see IO package sample)
    
    
    
    
    基于的互操作性
    • DotImaging.BitmapInterop array 与位图( WinForms ) 之间的跨平台互操作扩展。
    
    
    
    
    var image = new Gray<byte>[240, 320];
    
    
    var bmp = image.ToBitmap(); //to Bitmap
    
    
    
    var imageFromBmp = bmp.ToArray() as Bgr<byte>[,]; //from Bitmap
    
    
    
    
    • DotImaging.BitmapSourceInterop .NET array 与 BitmapSource ( WPF ) 之间的跨平台互操作性扩展。
    
    
    
    
    var bmp = new BitmapImage(new Uri("<path>"));
    
    
    Bgra<byte>[,] colorImg = bmp.ToArray<Bgra<byte>>(); //to bitmap
    
    
    
    var imageFromBitmap = colorImg.ToBitmapSource(); //from bitmap
    
    
    
    
    扩展
    • DotImaging.UI 可移植用户界面元素( 图像显示,进度栏,文件/文件夹对话框,颜色选取器,图像注释输入)。
    
    
    
    
    Bgr<byte>[,] image = new Bgr<byte>[480, 640];
    
    
    image.Show(); //show image (non-blocking)
    
    
    
    (0.4d).Progress(); //progress bar - 40% (non-blocking)
    
    
    
    string fileName = UI.OpenFile(); //open-file dialog
    
    
    
    Bgr<byte> color = UI.PickColor(); //color-picker dialog
    
    
    
    Gray<byte>[,] mask = image.GetMask(); //draw-mask dialog 
    
    
    
    RectangleF rect = image.GetRectangle(); //draw-rectangle dialog (blocking and non-blocking)
    
    
    
    var num = -1;
    
    
    UI.ShowMenu(itemNames: new string[] { "2", "3" },
    
    
     actions: new Action[] { () => num = 2, () => num = 3 }); //menu-dialog
    
    
    
    
    • DotImaging.Drawing .NET 图像绘制 array 扩展。
    
    
    
    
    //create a managed image
    
    
    var image = new Bgr<byte>[480, 640];
    
    
    
    //draw something
    
    
    image.Draw(new Rectangle(50, 50, 200, 100), Bgr<byte>.Red, -1);
    
    
    image.Draw(new Circle(50, 50, 25), Bgr<byte>.Blue, 5);
    
    
    
    
    • DotImaging.Linq 2D array Linq扩展
    
    
    
    
    //create a managed image
    
    
    Bgr<byte>[,] image =.. .; 
    
    
    
    //get the modified blue channel 
    
    
    var modifiedImage = image.AsEnumerable()
    
    
    . Select(x => x.B/2)
    
    
    . ToArray2D(image.Size());
    
    
    
    
    • DotImaging.Core.Platform 提供了一种可以移植的方式来确定执行平台+ 互操作性函数。
    
    
    
    
    Console.WriteLine(Platform.RunningPlatform); //Windows, Linux, MacOS
    
    
    
    //add the"UnmanagedLibraries/<OS>/<platform>/" to the path
    
    
    Platform.AddDllSearchPath(); 
    
    
    
    

    正在启动

    • 你需要什么就选什么。 选择的NuGet软件包安装将显示一个适当的自述文件。
    • 样品

    需要图像处理算法?

    框架是 Accord.NET 扩展插件的基础,它通过扩展公开了 Accord.NET的全部功能 !

    如何参与,贡献和提供反馈

    记住:你的观点很重要,并且将定义未来的路线图。

    • 问题,评论- Github上的消息,或者写入: darko.juric2 [at] gmail.com
    • 将 spread

    最终单词

    如果你喜欢这个项目,请为star星级 ,以帮助你传播这个词。 这样你将使框架更加重要,同时你会激励我改进它,因这里好处是互相相互作用的。


    相关文章