コード例 #1
0
ファイル: MTT.cpp プロジェクト: gnishida/Morph
void MTT::doPCA(RoadGraph* roads, PCA& pca) {
	// 頂点データを使って行列を生成する
	cv::Mat vmat = cv::Mat(GraphUtil::getNumVertices(roads), 2, CV_64FC1);

	int count = 0;
	RoadVertexIter vi, vend;
	for (boost::tie(vi, vend) = boost::vertices(roads->graph); vi != vend; ++vi) {
		if (!roads->graph[*vi]->valid) continue;

		vmat.at<double>(count, 0) = roads->graph[*vi]->getPt().x();
		vmat.at<double>(count, 1) = roads->graph[*vi]->getPt().y();

		count++;
	}

	// PCAを実施
	pca.pca(vmat, false);
}