|
|
|
@ -47,8 +47,9 @@ namespace templateMatching {
|
|
|
|
void LearnPattern(s_TemplData& m_TemplData, Mat& m_matDst, double& m_iMinReduceArea)
|
|
|
|
void LearnPattern(s_TemplData& m_TemplData, Mat& m_matDst, double& m_iMinReduceArea)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_TemplData.clear(); // 模板清空
|
|
|
|
m_TemplData.clear(); // 模板清空
|
|
|
|
|
|
|
|
|
|
|
|
int iTopLayer = GetTopLayer(&m_matDst, (int)sqrt((double)m_iMinReduceArea));// 获取金字塔的降采样层数
|
|
|
|
int iTopLayer = GetTopLayer(&m_matDst, (int)sqrt((double)m_iMinReduceArea));// 获取金字塔的降采样层数
|
|
|
|
|
|
|
|
LOG_DEBUG("iTopLayer: {}", iTopLayer); //监测iTopLayer是否存在溢出 iTopLayer == 0会报错
|
|
|
|
|
|
|
|
iTopLayer = MAX(iTopLayer, 1);
|
|
|
|
buildPyramid(m_matDst, m_TemplData.vecPyramid, iTopLayer); // 目标区域构建金字塔
|
|
|
|
buildPyramid(m_matDst, m_TemplData.vecPyramid, iTopLayer); // 目标区域构建金字塔
|
|
|
|
s_TemplData* templData = &m_TemplData;
|
|
|
|
s_TemplData* templData = &m_TemplData;
|
|
|
|
templData->iBorderColor = mean(m_matDst).val[0] < 128 ? 255 : 0; // 依据图像块均值,定义边界颜色
|
|
|
|
templData->iBorderColor = mean(m_matDst).val[0] < 128 ? 255 : 0; // 依据图像块均值,定义边界颜色
|
|
|
|
|