4
0
mirror of https://github.com/nerfstudio-project/nerfstudio.git synced 2026-11-10 18:17:31 +08:00
This commit is contained in:
tianrking 2026-08-10 04:02:47 +08:00 committed by GitHub
commit 0d212017c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 57 additions and 2 deletions

View File

@ -110,8 +110,9 @@ def metashape_to_json(
s["k2"] = _find_param(calib, "k2")
s["k3"] = _find_param(calib, "k3")
s["k4"] = _find_param(calib, "k4")
s["p1"] = _find_param(calib, "p1")
s["p2"] = _find_param(calib, "p2")
# Metashape and OpenCV reverse the p1 and p2 names for the same tangential terms.
s["p1"] = _find_param(calib, "p2")
s["p2"] = _find_param(calib, "p1")
sensor_dict[sensor.get("id")] = s

View File

@ -0,0 +1,54 @@
# Copyright 2022 the Regents of the University of California, Nerfstudio Team and contributors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Tests for importing Metashape camera data."""
import json
from pathlib import Path
from nerfstudio.process_data.metashape_utils import metashape_to_json
def test_metashape_tangential_distortion_conversion(tmp_path: Path):
xml_path = tmp_path / "cameras.xml"
xml_path.write_text(
"""<?xml version="1.0" encoding="UTF-8"?>
<document>
<chunk>
<sensors>
<sensor id="0" type="frame">
<resolution width="1000" height="800"/>
<calibration>
<f>500</f>
<p1>0.001</p1>
<p2>-0.002</p2>
</calibration>
</sensor>
</sensors>
<cameras>
<camera id="0" sensor_id="0" label="image">
<transform>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</transform>
</camera>
</cameras>
</chunk>
</document>
""",
encoding="utf-8",
)
metashape_to_json({"image": Path("images/image.jpg")}, xml_path, tmp_path)
transforms = json.loads((tmp_path / "transforms.json").read_text(encoding="utf-8"))
assert transforms["frames"][0]["p1"] == -0.002
assert transforms["frames"][0]["p2"] == 0.001