目前 “阿牛图像实验室” 是在图像处理库AForge.Net之上实现的,内存占用比较大,后续的版本将剔除AForge.Net,采用OpenCV。
一、基本情况
项目地址:http://code.google.com/p/smartimage/
下载地址:SmartImageLab0.1.zip
开源协议:GPL V2 (因为项目所用的Emgu CV 是 GPL 的,被传染了。)
运行平台:.Net 2.0+
截图:
二、项目目标
图像处理开发大部分时间用在算法设计、组合和测试之中,本项目试图提供这样的基础设施,减少算法组合和测试的工作量。
三、功能介绍
(1)输入图像。打开图像文件,作为输入。那个带“V”的按钮记录了打开图像的地址。那个 “<” “>” 是读取同目录下前一张图片和后一张图片,俺很懒,没有实现。
(2)处理器区。可添加组合各种图像处理器(每种处理器封装0种、1种或多种算法),可启用关闭各种处理器,可调整处理器的参数。设置有特定参数处理器的组合成为配置。可以保存和加载配置。“V”字按钮记录了处理器配置的历史。
各种处理器(必须Enable)之间是串行关系。也就是说, 输入图像 –> 处理器0 –> 处理器1 –> ……
(3)输出区。点击“运行”,选择一个处理器,则输出区显示该处理器的处理结果。输出结果由处理器控制,一般包括,输入图像,输出图像及其它有用的信息。比如,上图是求输入图像的霍夫变换,输出图像是霍夫变换后的图像。在输出项中有一个HoughLines的选项,点击后,得到霍夫变换得到的各条线:
四、图像工具
鼠标双击输入区或输出区的图像,可以激活图像工具窗体(这个我直接使用 Emgu Cv 的控件实现的):
在图像中点右键,可以出现操作菜单,上面有常用的图像处理操作。其中Property可以显示图像的细节信息:
五、扩展与自定义处理器
默认情况下只提供了很少的几个处理器,作为Demo。真正使用时需要自己编写相关的处理器,具体步骤为:
1 编写处理器——请参照 Orc.SmartImage.Processor 项目中的例子编写
2 添加处理器:
在 Orc.SmartImage.Lab 项目下MainForm的InitProcessors方法中添加对应的处理器。
六、推荐图像库
推荐使用以下图像库来编写处理器
(1)AForge: http://code.google.com/p/aforge/
纯C#编写的图像处理器
(2)Emgu CV: http://www.emgu.com/
OpenCV的.Net封装。
七、其它
(1)项目引用的Orc.Util和Orc.Util.WinForm不开源,但我也没做混淆,可反编译进去看所引用的功能。
(2)俺还正在写插件机制,在下一个版本,会有一个Plugin目录,写好的处理器dll,向里面一扔就行了,这样一来。GPL就没约束力了。
(3)源代码寄宿在Google Host上,可用SVN下载。所引用的dll下载地址为:lib.zip
若有其它疑问可与作者联系:
Email:[email protected]
QQ: 271630067