摘要: 以下为类的方法概览,方法摘要里标注[OK]的是效率已经超过调用OpenCV(使用Emgu 2.3版本)的,未标注的速度慢于OpenCV,标注[??]的尚未进行测试。代码下载地址:http://download.csdn.net/detail/wmesci/3868534namespace wmesci.Images { /// <summary>像素格式</summary> public enum PixelFormat { GRAY, BGR, RGB } /// <summary>非托管图像类</summary> public unsafe 阅读全文
posted @ 2011-11-29 22:16 RayTracer 阅读(465) 评论(0) 推荐(1) 编辑
摘要: Windows 7下使用窗口缩略图的类 internal sealed class ThumbnailSafeHandle : SafeHandle { [DllImport("dwmapi.dll", SetLastError = true)] static extern int DwmQueryThumbnailSourceSize(ThumbnailSafeHandle hThumbnail, ref PSIZE pSize); [DllImport("dwmapi.dll", SetLastError = true)] ... 阅读全文
posted @ 2011-11-29 21:45 RayTracer 阅读(776) 评论(0) 推荐(0) 编辑
摘要: 经过前面的讨论,我对Image类进行了优化,代码如下: //C#灰度图像处理类,作者:wmesci //http://http://blog.csdn.net/wmesci unsafe class Image :CriticalHandle, IDisposable { [DllImport("kernel32.dll")] static extern IntPtr LocalAlloc(int flags, int size); [DllImport("kernel32.dll")] s... 阅读全文
posted @ 2011-11-25 20:17 RayTracer 阅读(1437) 评论(0) 推荐(1) 编辑
摘要: 方便起见,下面再贴一下上次的对比结果: 1、 2、 注意:由于上面两次比较不在同一系统上,Stopwatch.Frequency的值可能不同,故这两次的结果之间不具有可比性!!—————————————————————————————————————————————————————— 先分析下Add/Sub两个方法,在Image类里使用的是指针+TPL(.NET 并行任务库),使用Parallel.For方法对每一行进行循环,这个应该很容易看懂,就不多讲了。下面来看下OpenCV是如何实现的: //文件:opencv\modules\core\srcvoid c... 阅读全文
posted @ 2011-11-25 11:31 RayTracer 阅读(2009) 评论(3) 推荐(0) 编辑
摘要: OpenCV是一套使用C/C++编写的开源计算机视觉库,全称Open Computer Vision,因其高效、全面,在计算机视觉领域应用极广。其在C#下的包装有多种,最常用的是Emgu。 本人最近在写一套计算机视觉处理软件,用的就是C# + Emgu,因为用到的OpenCV方法就那么几个(大概10多个),为了这些为数不多的方法而带着数MB的Emgu DLL,心里很是不爽,于是乎萌生了将这些方法全部用C# unsafe代码重写的想法,反正OpenCV是开源的,算法可以写成一样的,效率上应该差不到哪去。下面是我自己写的一个图像类: ///<summary>灰度图像处理类,作者:... 阅读全文
posted @ 2011-11-24 22:49 RayTracer 阅读(3775) 评论(0) 推荐(0) 编辑
摘要: 这种方式的基本思想就是循环使用正则表达式找出字符串中不带括号的那一部分,再分析出各个数字和运算符以及函数,并执行运算,然后将结果替换原表达式中相应部分,直到最后不能再进行任何替换。如: (3+5)*sin(7+9) -----> (3+5)*sin(7+9) ----->8*sin(7+9) ----->8*sin16---->8*sin16 ------> 8*-0.2879 -----> -2.3 先定义几个正则表达式: static Regex Num = new Regex(@"(\-?\d+\.?\d*)"); //匹配浮点数字 阅读全文
posted @ 2011-09-28 12:16 RayTracer 阅读(1451) 评论(0) 推荐(0) 编辑
摘要: 一、毫秒级精度 1、[.NET] System.Environment.TickCount 获取系统启动后经过的毫秒数,包装了GetTickCount 2、[WINAPI] GetTickCount[DllImport("kernel32")]static extern uint GetTickCount(); 从操作系统启动到现在所经过的毫秒数,精度为1毫秒,经简单测试发现其实误差在大约在15ms左右 3、[WINAPI] timeGetTime[DllImport("winmm")]static extern uint timeGetTime(); 阅读全文
posted @ 2011-09-28 11:09 RayTracer 阅读(2077) 评论(0) 推荐(0) 编辑
摘要: 原帖地址:http://www.game798.com/html/2007-03/2997.htm作者:FXCarl首先我想说,对于凹凸贴图在计算机图形领域中的研究,最早开始于70年代末,至今已经有接近30年历史了。NormalMap只是一种目前很流行的凹凸贴图技术,而这里将会介绍一些目前游戏和在XBOX360和PlayStation3这种新世代主机上将会运用的凹凸贴图技术。BumpMapping 凹凸贴图做过CG的朋友一定比 FXCarl还要更早的认识BumpMap。这种贴图是一种灰度图,用表面上灰度的变化来描述目标表面的凹凸,因此这种贴图是黑白的,如果节省空间的画,甚至可以把贴图的Alph 阅读全文
posted @ 2011-08-10 15:06 RayTracer 阅读(735) 评论(0) 推荐(0) 编辑