Transform Point Cloud from Millimeters to Meters
이 튜토리얼은 4x4 Homogeneous transformation matrix를 사용하여 포인트 클라우드 데이터를 밀리미터(mm)에서 미터(m)로 변환하는 방법을 보여줍니다.
먼저 포인트 클라우드를 로드합니다.
const auto dataFile = std::string(ZIVID_SAMPLE_DATA_DIR) + "/CalibrationBoardInCameraOrigin.zdf";
std::cout << "Reading " << dataFile << " point cloud" << std::endl;
auto frame = Zivid::Frame(dataFile);
auto pointCloud = frame.pointCloud();
그런 다음 0.001 스케일링으로 4x4 변환 행렬을 만듭니다.
const auto millimetersToMetersTransform =
Zivid::Matrix4x4{ { 0.001F, 0, 0, 0 }, { 0, 0.001F, 0, 0 }, { 0, 0, 0.001F, 0 }, { 0, 0, 0, 1 } };
그런 다음 이 변환 행렬을 사용하여 포인트 클라우드를 변환합니다.
std::cout << "Transforming point cloud from mm to m" << std::endl;
pointCloud.transform(millimetersToMetersTransform);
마지막으로 변환된 포인트 클라우드를 저장합니다.
const auto transformedFile = "FrameInMeters.zdf";
std::cout << "Saving transformed point cloud to file: " << transformedFile << std::endl;
frame.save(transformedFile);