博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
发布我的高性能纯C#图像处理基本类,顺便也挑战一下极限。:)
阅读量:6992 次
发布时间:2019-06-27

本文共 854 字,大约阅读时间需要 2 分钟。

前些天写了《》《》,后来,在这两篇文章的基础上,整理了代码,发布在  ;可以使用SVN通过下面地址:://smartimage.googlecode.com/svn/trunk/ smartimage-read-only 下载源代码。

其中:Orc.SmartImage.Common 项目是C#图像处理的基础类。Orc.SmartImage.CommonTest 是单元测试(需nunit),Orc.SmartImageLab.PerformanceTest是性能测试。关于这些基础类和EmguCV和OpenCV(P/Invoke)的性能比较见我的博客:《》,项目核心是泛型类 UnmanagedImage.cs

 

代码

 

 

Argb32Image,GrayscaleImage, ImageU8, Rgb24Image是UnmanagedImage<T>的四个实现。对于具体的图像类,可以直接使用指针进行操作,也可以通过索引器和迭代器进行操作。直接通过指针操作的性能大概是后者的4倍。通过迭代器进行操作不用考虑指针越界问题。通过指针和索引器进行操作需自行判断指针越界的问题。

这几个基本类和Bitmap之间的转换很简单高效,如:

Rgb24Image rgb24 = new Rgb24Image(map); 

Bitmap to = rgb24.ToBitmap();

使用这几个类进行图像处理,性能逼近C/C++代码。且使用的是非托管内存,又实现了Dispose模式,不会发生内存泄漏。想要及时释放内存,Dispose一下即可。

==================================

在此挑战一下,哪位兄弟能用C#写出性能更高的代码?小弟奉上银鳞胸甲一件!

本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2010/03/19/1689747.html如需转载请自行联系原作者

xiaotie 集异璧实验室(GEBLAB)

你可能感兴趣的文章
数集合有多少个TOJ(2469)
查看>>
CSUFT 1003 All Your Base
查看>>
多少人没熬过那三厘米!
查看>>
I.MX6 ubuntu-core-14.04 Apache php mysql Qt5
查看>>
在react native 中Async/Await的使用说明和方法
查看>>
在UnrealEngine中用Custom节点实现高斯模糊
查看>>
11-22 JS中级复习
查看>>
设计模式学习笔记-抽象工厂模式
查看>>
ArcEngine10.0三维开发
查看>>
[2015-3-28]Asp.net源码发布
查看>>
VS窗体换肤
查看>>
Git 标签
查看>>
C# 使用Xpath读取XML
查看>>
soupui :java.lang.reflect.InvocationTargetException
查看>>
redis rdb文件解析
查看>>
【Python第十三篇】jQuery
查看>>
mac 升级10.12 php debug 环境 跑不起的解决 解决方案
查看>>
Tutorial : Implementing Django Formsets
查看>>
001_初识ASP.NET MVC架构
查看>>
interceptor拦截器
查看>>