【机器视觉-色彩匹配】
ColorMatchDemo.exe 色彩匹配

预先学习颜色样本,识别出当前颜色属于哪一个样本,并返回匹配程度。

代码如下:
在 StdAfx.h 的头文件中添加 CKVISION 相关定义
#include"…\…\Include\CKGDI.h"
#include"…\…\Include\CKBase.h"
#include"…\…\Include\CKColor.h"
//#include “…\…\Include\CKColorIdentify.h” // 颜色识别
//#include “…\…\Include\CKColorMonitor.h” // 颜色监测
#ifdef_WIN64
#pragma
#pragma
#pragma
#else
comment(lib,
comment(lib,
comment(lib,
“…\…\Lib_x64\CKGDI.lib”)
“…\…\Lib_x64\CKBase.lib”)
“…\…\Lib_x64\CKColor.lib”)
#pragmacomment(lib,
#pragmacomment(lib,
#pragmacomment(lib,
#endif
“…\…\Lib\CKGDI.lib”)
“…\…\Lib\CKBase.lib”)
“…\…\Lib\CKColor.lib”)
usingnamespaceCKVision;
在应用程序入口和退出的地方增加初始化和释放 CKVISION 库。
// CColorMatchDemoApp initialization
BOOLCColorMatchDemoApp::InitInstance()
{
CKVision::InitLibrary(); // 初始化 CKVision 库
//…
//…End
CKVision::ExitLibrary(); // 退出 CKVision 库
}
在资源视图 Dialog 中添加相应的界面操作
// … … 详情请打开实例参考。
在对话框窗口的 .h 头文件中定义相应的图像处理功能:
// ColorMatchDemoDlg.h : header file
CPrImage
CGdiRect
CGdiCircle
COverlay
CGdiView
m_Image; // 基础图像
m_Rect; // 矩形区域ROI
m_Roi; // 圆形区域ROI
m_Overlay; // 图像上层显示表面, 前显示的动态图形,主要用于ROI 显示。
m_Display; // 图形显示视图窗口
CColorSamples m_Sample;// 颜色样本集合
CColorIdentify m_Identify; // 颜色识别
COverlay m_sOverlay;
CGdiView m_sDisplay;
CGdiHistogram m_sHistogram; //学习样本直方图显示
COverlay m_tOverlay;
CGdiView m_tDisplay;
CGdiHistogram m_tHistogram;//匹配样本直方图显示
在对话框窗口的.cpp 实现文件中添加相应的功能实现。
// ColorMatchDemoDlg.cpp : implementation file
// CColorMatchDemoDlg message handlers
BOOLCColorMatchDemoDlg::OnInitDialog()
//…
// 颜色识别
voidCColorMatchDemoDlg::OnExecute()
{
// TODO: Add your control notification handler code here
doubledMatchScore = 0 ;
m_Identify.SetSensitivity( m_Combo1.GetCurSel() ) ;
m_Identify.SetSatThreshold( GetDlgItemInt(IDC_EDIT1) ) ;
BeginTime();
// 颜色识别
m_Identify.Execute( m_Image, m_Roi ) ;
// 识别当前颜色与颜色样本的区别
m_Identify.Identify( m_Sample, dMatchScore ) ;
EndTime();
CStringtext;
text.Format( “%f”, dMatchScore ) ;
SetDlgItemText( IDC_DATA1, text ) ;
m_tHistogram.SetValues(
m_Identify.GetColorValues(),
m_Identify.GetColorCount() ) ;
m_tDisplay.Redraw();//识别样本直方图刷新显示
}
// … … 详情请打开实例参考。
更多推荐
所有评论(0)