AR 3Dモデル
Reputeless 2019/05/23(Thu) 21:12
不可能ではありませんが、難しいので OpenSiv3D に実装されるのを待ったほうが良いです。
旧 Siv3D で AR マーカーの 3D 位置と回転情報を取得するサンプルです↓
# include <Siv3D.hpp>
void Main()
{
Webcam webcam(0);
webcam.start();
const double markerSize_m = 0.05; // マーカーのサイズ (m)
webcam.startAR(markerSize_m, L""); // 第二引数にカメラのカリブレーション情報 (XML)のファイルパス
DynamicTexture texture;
Array<ARMarker> markers;
const Font font(40, Typeface::Bold);
while (System::Update())
{
if (webcam.hasNewFrame())
{
webcam.getFrame(texture);
}
if (webcam.hasNewMarkers())
{
webcam.getMarkers(markers);
}
texture.draw();
for (const auto& marker : markers)
{
marker.pos; // 3D の位置情報
marker.rotation3D; // 3D の回転情報
marker.quad.drawFrame(4, Palette::Red);
font(marker.id).drawCenter(marker.screenPos, Palette::Red);
}
}
}
カメラのカリブレーションファイルは、
OpenCV 2.4.X に付属するサンプル samples/cpp/calibration.cpp に従って作成されている必要があります。
例: https://gist.github.com/Reputeless/6eb8574cd1c31eb4e200876e40b798ec
とろろ昆布 2019/05/24(Fri) 00:25
とろろ昆布 2019/05/24(Fri) 14:29
とろろ昆布 2019/05/24(Fri) 22:02
Reputeless 2019/05/26(Sun) 09:45
とろろ昆布 2019/05/27(Mon) 00:27
Reputeless 2019/05/27(Mon) 22:32