view src/CENS.cpp @ 39:bfd9acbcfd7c

Add CENS features
author Chris Cannam
date Thu, 01 Oct 2015 11:51:54 +0100
parents
children 00b6ae41efbe
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */

#include "CENS.h"

#include "Normalise.h"
#include "OctaveFold.h"
#include "Resize.h"

#include <cmath>
#include <iostream>

using namespace std;

static Quantize::Parameters
qparams(CENS::Parameters params)
{
    Quantize::Parameters qp;
    qp.steps = params.quantSteps;
    qp.weights = params.quantWeights;
    return qp;
}

CENS::CENS(Parameters params) :
    m_params(params),
    m_quantize(qparams(params))
{
}

CENS::~CENS()
{
}

RealBlock
CENS::process(const RealBlock &in)
{
    if (in.empty()) {
	return in;
    }

    RealBlock out;

    for (RealColumn col: in) {

        out.push_back(m_quantize.process
		      (Normalise::normalise
		       (OctaveFold::process
			(Resize::process(col)),
			m_params.normP, m_params.normThresh)));
    }        

    return out;
}