#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);
}
}
}