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();//识别样本直方图刷新显示
}

// … … 详情请打开实例参考。

Logo

聚焦RDK与具身智能,汇集机器人开发教程、开源案例和技术交流

更多推荐