利用现有的机器视觉开发库来实现Blob分析,Blob 应用较广比如颗粒计数、定位、排序等,现采用CkVision视觉开发包的Blob功能来实现,看看是不是很简单就搞好了。
1.)在 StdAfx.h 中添加。
#include "..\\..\\Include\\CKGDI.h"
#include "..\\..\\Include\\CKBase.h"
#include "..\\..\\Include\\CKBlobAnalyzer.h"
#ifdef _WIN64
#pragma comment(lib, "..\\..\\Lib_x64\\CKGDI.lib")
#pragma comment(lib, "..\\..\\Lib_x64\\CKBase.lib")
#pragma comment(lib, "..\\..\\Lib_x64\\CKBlob.lib")
#else
#pragma comment(lib, "..\\..\\Lib\\CKGDI.lib")
#pragma comment(lib, "..\\..\\Lib\\CKBase.lib")
#pragma comment(lib, "..\\..\\Lib\\CKBlob.lib")
#endif
using namespace CKVision;
//在程式入口和退出的地方增加 初始化和释放CKVISION库。
BOOL CBlobToolDemoApp::InitInstance()
CKVision::InitLibrary(); // 初始化CKVision库.
//…….
CKVision::ExitLibrary(); // 退出CKVision库
2.)在资源视图 Dialog 中添加相应的界面操作。
在对话框窗口的 .h 头文件中定义相应的图像处理功能:
void Filter( int nMeasure, double dMin, double dMax, BOOL bInvert );// 过滤
void Sort( int nMeasure, int nOrder );// 排序
void ThresholdImage( INT value );// 设置二值化阈值显示
void ThresholdDraw( BOOL draw );// 显示二值化图像
// 数据结果插入到列表中显示
void InsertBase( int& nColNum