【机器视觉】图像预处理
这里写目录标题
- 图像预处理
- 代码
图像预处理

对图像进行预处理工作(包括模糊化处理、增强细节、形态学腐蚀和形态学膨胀等功能)后生成并输出处理后的图像。

代码
在 StdAfx.h 的头文件中添加 CKVISION 相关定义
#include"…\…\Include\CKBase.h"
#include"…\…\Include\CKGDI.h"
#ifdef WIN64
// 向lib宏注加入CKBase.lib库文件路径
pragma comment(lib, "C:\\...\\Lib_x64\\CKBase.lib")
// 向lib宏注加入CKGDI.lib库文件路径
pragma comment(lib, "C:\\...\\Lib_x64\\CKGDI.lib")
#endif
// 当主条件不满足时执行以下操作
#else
// 生成指定目录下的CKBase.lib库文件
pragma generate("C:\\...\\Lib\\CKBase.lib")
// 生成指定目录下的CKGDI.lib库文件
pragma generate("C:\\...\\Lib\\CKGDI.lib")
#endif
usingnamespaceCKVision;
在应用程序入口和退出的地方增加初始化和释放 CKVISION 库。
CKVision::InitLibrary(); // 初始化 CKVision 库
//…
//…End
CKVision::ExitLibrary(); // 退出 CKVision 库
在资源视图 Dialog 中添加相应的界面操作
//……详情请打开实例参考。
为对话框窗口中的.h头文件定义相应的图像处理功能。
CPrImage m_Image;
CPrImage m_Result;
CGdiView m_GdiView;
在对话框窗口的.cpp 实现文件中添加相应的功能实现。
// 执行 该函数 // TODO: 添加控制通知处理相关代码此处
UpdateData( TRUE );
BeginTime();
switch( m_Combo1.GetCurSel() ) { case 0: ImageSmoothing( m_Image, m_{Result} ); // 平滑处理(smoothing) break; case 1: ImageSharpen( m_Image, m_{Result} ); // 锐化处理(sharpening) break; case 2: ImageSobelEdgeDetect( m_Image, m_{Result} ); // Sobel边缘检测(edge detection using Sobel operator) break; case 3: ImageErode( m_Image, m_{Result} ); // 腐蚀处理(erosion) break; case 4: ImageDilate( m_Image, m_{Result} ); // 膨胀处理(dilation) break; }
}
EndTime();
// 把处理结果图复制到当前图像
m_Image.Copy( m_Result );
m_GdiView.Redraw();
}
//……详情请打开实例参考。
