EasyAnalysis图像分析库测试版以及源代码下载地址:
下载地址:
本人业余爱好不多,图像分析就是一项,平时喜欢照着论文写点小程序,写完就扔,自得其乐。既然是爱好,就希望能将业余时间尽量多的花费在学习图像分析方面的专业知识上,而不是浪费在对图像的读取、运算、变换以及对这些程序进行调试等不必要的工作上,不过谁都知道这些工作是必须要做的。相信向我一样的爱好者很多,如果你没有时间去学习OpenCV,那你可以试试偶写的EasyAnalysis 。一个VC MFC下用的简单的图像分析库,除了使用简单,没别的优点。从今天开始,我会陆续将EasyAnalysis库的使用方法帖在这里,想试试的朋友可以关注一下。目前版本只支持MFC,所开放的功能都是相对来说稳定的功能。其它功能模块同使用方法文档的发布策略,测试好后陆续发布。
该版本提供CBmp,CEdge,CFileOpt,CFilter,CFourier,CGeometry,GGraph,CGst,CImage,CImageMath,CMemAssign<class T>,CMorphologyMath,CPexception,CSegmentation,CWindowGraph共15个类可供使用,这些类的使用方法将在后面陆续介绍。
EasyAnalysis库使用起来到底有多简单,这里先作个演示。假如需要对一副图像进行Sobel变换然后显示在一个Dialog上,过去我们需要读文件、读数据、做卷积然后再把所有数据显示在Dialog对应的场景上,对一个熟手来说这恐怕也要花费几个小时的时间进行编码和调试。如果我们使用EasyAnalysis库实现需要多久呢?
CBmp m_Bmp;
m_Bmp.CreateImage(“文件路径”);
完成图像文件读取
CEdge m_Edge(&m_Bmp);
m_Edge.Sobel();
完成Sobel变换
CWindowGraph m_Graph(GetDC());
m_Graph.SetImage(1,1,m_Bmp.GetHeight(),m_Bmp.GetWidth(),m_Bmp.GetBits());
m_Bmp.CreateImage(“文件路径”);
完成图像文件读取
CEdge m_Edge(&m_Bmp);
m_Edge.Sobel();
完成Sobel变换
CWindowGraph m_Graph(GetDC());
m_Graph.SetImage(1,1,m_Bmp.GetHeight(),m_Bmp.GetWidth(),m_Bmp.GetBits());
完成显示到Dialog
六行代码,保守估计5分钟搞定。OK?
下面是当前版本支持的功能简介,还有大量的功能正在测试中
一.图像文件
目前只支持2,4,8,16,24位BMP文件的读取和保存操作。有兴趣的朋友可以参考类图支持自己希望的图像格式。也可以用其他控件或库读出其他格式的图像内容,然后规范化为EasyAnalysis库支持的格式输入到库中,比如使用cxImage。以后我会陆续加上对其他文件格式支持的模块。
二.图像运算:
1. 算术运算:图像间加减,图像与常数的加减乘。
2. 统计:RGB分量出现次数、频率、直方图。
3. 对图像一维和二维卷积。
4. 取临域、判断连通性。
5. 形态学运算:腐蚀、膨胀、开启、闭合
6. 几何缩放、旋转、翻转
7. 1D,2D傅立叶变换
三.边缘提取:
1. 高斯——拉普拉斯
2. Kirsch八方向
3. 拉普拉斯
4. Prewiit
5. Sobert
6. Robert
7. 自定义模板
四.滤波:
1. 线形平滑、锐化
2. 非线性滤波,支持自定义函数
3. 中值滤波
4. 浮雕化
5. Butterworth高通、低通滤波器
6. 理想高通、低通滤波器
五.灰度变换
1. 均衡化
2. 线性变换、非线性变换
3. 窗口变换
4. 底片
六.图像分割
1. 固定阈值分割
2. 迭代法
3. 区域增长
4. Outas
5. 梯度自动调整的矩不变法