Newer
Older
PrismSoftware / ECTrainer2 / Marker.cpp
#include "Marker.h"

void Marker::Generate(cv::Size imgsize) {
	// 定数の計算
	float width = imgsize.height * HEIGHT / imgsize.width;
	float itvX = (1.0 - 2 * MARGIN.x - width) / 2;
	float itvY = (1.0 - 2 * MARGIN.y - HEIGHT) / 2;
	// 座標計算
	for (int iy = 0; iy < 3; iy++) {
		for (int ix = 0; ix < 3; ix++) {
			if (ix == 1 && iy == 1) continue;	// 中心にはマーカーを置かない

			std::vector<cv::Point2f> marker;
			marker.push_back(cv::Point2f(
				MARGIN.x + itvX * ix, MARGIN.y + itvY * iy));
			marker.push_back(cv::Point2f(
				MARGIN.x + itvX * ix + width, MARGIN.y + itvY * iy));
			marker.push_back(cv::Point2f(
				MARGIN.x + itvX * ix + width, MARGIN.y + itvY * iy + HEIGHT));
			marker.push_back(cv::Point2f(
				MARGIN.x + itvX * ix, MARGIN.y + itvY * iy + HEIGHT));
			_Corners.push_back(marker);
		}
	}
}