全3回
WImage3D(画像)
cv::imreadで読み出しが画像を描画する。
vizの座標系はx軸が下なので、画像を180度回転して上げる必要がある(キャプチャはしていない)。
auto im = cv::imread("./lena.jpg");
auto image_3d = cv::viz::WImage3D(im, cv::Size2d(40, 40));
myWindow.showWidget("Image3D", image_3d);
WImageOverlay(画像のオーバーレイ)
画像を3次元空間描画するのでなく、2次元の平面に描画。
視点をグリグリしても、位置は変わらない。
座標をcv::Rectで指定する(左下が原点になるので注意!)。
auto im = cv::imread("./lena.jpg");
auto image_overlay = cv::viz::WImageOverlay(im, cv::Rect(0, 0, 250, 250));
myWindow.showWidget("ImageOverlay", image_overlay);
WPlane(パネル)
中心座標、平面の法線、Y軸の方向、サイズを指定する。
(色はネイビーなんだけど、ちょっと見た目が違う???)
auto plane = cv::viz::WPlane(cv::Point3d(0.0, 0.0, 0.0), // 中心座標
cv::Vec3d(1.0, 0.0, 0.0), // 平面の法線
cv::Vec3d(1.0, 1.0, 0.0), // Y軸の方向
cv::Size2d(3.0, 3.0), // サイズ
cv::viz::Color::navy()); // 色
myWindow.showWidget("Plane", plane);
WPolyLine(多角形)
頂点の座標の配列を指定する。
ぐるぐる
cv::Mat polyline(1, 32, CV_64FC3);
for (auto i = 0; i < (int)polyline.total(); i++)
{
polyline.at(i) = cv::Vec3d(i / 16.0, cos(i * CV_PI / 6), sin(i * CV_PI / 6));
}
myWindow.showWidget("Polyline", cv::viz::WPolyLine(polyline));




0 件のコメント:
コメントを投稿