void YARPGaussianFeatures::Apply (const YARPImageOf<YarpPixelMono>& in) { assert (in.GetPadding() == 0); for (int i = 1; i <= m_sigmas; i++) { m_features(i) = SpecialConvolveX (m_coeffs[i-1], (const unsigned char *)in.GetAllocatedArray()); m_features(i+m_sigmas) = SpecialConvolveY (m_coeffs[i-1], (const unsigned char *)in.GetAllocatedArray()); } }
int hierarchicalClustering(const Mat& features, Mat& centers, const KMeansIndexParams& params) { CV_Assert(features.type() == CV_32F); CV_Assert(features.isContinuous()); ::cvflann::Matrix<float> m_features(features.rows, features.cols, (float*)features.ptr<float>(0)); CV_Assert(features.type() == CV_32F); CV_Assert(features.isContinuous()); ::cvflann::Matrix<float> m_centers(centers.rows, centers.cols, (float*)centers.ptr<float>(0)); return ::cvflann::hierarchicalClustering(m_features, m_centers, ::cvflann::KMeansIndexParams(params.branching, params.iterations, (::flann_centers_init_t)params.centers_init, params.cb_index)); }