Create 10

This commit is contained in:
xixu-me committed 2024-11-13 14:38:51 +08:00
1 parent 67034b954c
commit a9337f46f6
52 files changed
+391

No files matched your search

+113
View File
@@ -0,0 +1,113 @@
# 利用OpenCV实现两张2D图像的3D重构。
import cv2
import numpy as np
import plotly.express as px
import plotly.io as pio
# 设置plotly在浏览器中显示
pio.renderers.default = "browser"
# 读取图像
img1 = cv2.imread(r"10\templeRing\templeR0003.png")
img2 = cv2.imread(r"10\templeRing\templeR0005.png")
# 定义相机内参
fx = 0.25 * 1520.4
fy = 0.25 * 1525.9
cx = 302.32
cy = 246.87
K = np.array([[fx, 0, cx], [0, fy, cy], [0, 0, 1]])
# 定义第一个相机的外参矩阵
R1 = np.array(
[
[-0.01625331773280620100, 0.98386957700862299000, -0.17814736905031653000],
[0.97668439268305030000, -0.02252259937820530100, -0.21349550254417543000],
[-0.21406407160478280000, -0.17746376518636725000, -0.96056399333613396000],
]
)
t1 = np.array([[-0.0283090812583], [-0.0366442193256], [0.529139415773]])
# 定义第二个相机的外参矩阵
R2 = np.array(
[
[-0.05235090589954815400, 0.98479784589115438000, -0.16562785206491965000],
[0.88539496349116698000, -0.03093875352325572600, -0.46380874523331522000],
[-0.46188217250287084000, -0.17092687400923678000, -0.87031538103463302000],
]
)
t2 = np.array([[-0.0269600886818], [-0.0469344855587], [0.53860946783]])
# 转换图像为灰度图
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 创建SIFT特征检测器
sift = cv2.SIFT_create()
# 检测特征点和计算描述符
kp1, des1 = sift.detectAndCompute(gray1, None)
kp2, des2 = sift.detectAndCompute(gray2, None)
# 创建BFMatcher对象
bf = cv2.BFMatcher(cv2.NORM_L2, crossCheck=True)
# 进行特征匹配
matches = bf.match(des1, des2)
# 按距离排序
matches = sorted(matches, key=lambda x: x.distance)
# 选择前N个最佳匹配点(可以调整这个数值)
N_BEST_MATCHES = 100
matches = matches[:N_BEST_MATCHES]
# 提取匹配点的坐标
pts1 = np.float32([kp1[m.queryIdx].pt for m in matches]).reshape(-1, 1, 2)
pts2 = np.float32([kp2[m.trainIdx].pt for m in matches]).reshape(-1, 1, 2)
# 计算投影矩阵
P1 = K @ np.hstack((R1, t1))
P2 = K @ np.hstack((R2, t2))
# 三角测量得到3D点
points_4D = cv2.triangulatePoints(P1, P2, pts1, pts2)
points_3D = points_4D / points_4D[3]
points_3D = points_3D[:3, :].T
# 可选:移除一些可能的异常点
# 这里使用简单的距离阈值进行过滤
distances = np.sqrt(np.sum(points_3D**2, axis=1))
mask = distances < np.percentile(distances, 95) # 移除最远的5%的点
points_3D = points_3D[mask]
# 使用plotly进行3D可视化
fig = px.scatter_3d(
x=points_3D[:, 0], y=points_3D[:, 1], z=points_3D[:, 2], title="3D Reconstruction"
)
# 调整点的大小和视角
fig.update_traces(marker=dict(size=1))
fig.update_layout(scene=dict(aspectmode="data")) # 保持真实比例
# 显示结果
fig.show()
# 保存结果
fig.write_html("10/templeR.html")
# 可选:显示匹配结果
img_matches = cv2.drawMatches(
img1,
kp1,
img2,
kp2,
matches,
None,
flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS,
)
cv2.imshow("Matches", img_matches)
cv2.waitKey(0)
cv2.destroyAllWindows()
+160
View File
@@ -0,0 +1,160 @@
# 利用OpenCV实现多张2D图像的3D重构。每张图片的内外方位元素从templeRing_par.txt文件中读取
import cv2
import numpy as np
import plotly.express as px
import plotly.io as pio
# 设置plotly在浏览器中显示
pio.renderers.default = "browser"
def read_camera_parameters(file_path):
"""读取相机参数文件"""
cameras = []
with open(file_path, "r") as f:
n_cameras = int(f.readline())
for _ in range(n_cameras):
line = f.readline().split()
camera = {
"image": line[0],
"K": np.array(
[
[float(line[1]), 0, float(line[3])],
[0, float(line[5]), float(line[6])],
[0, 0, 1],
]
),
"R": np.array(
[
[float(line[10]), float(line[11]), float(line[12])],
[float(line[13]), float(line[14]), float(line[15])],
[float(line[16]), float(line[17]), float(line[18])],
]
),
"t": np.array(
[[float(line[19])], [float(line[20])], [float(line[21])]]
),
}
cameras.append(camera)
return cameras
def reconstruct_3d_points(img1, img2, K, R1, t1, R2, t2):
"""从两张图片重构3D点云"""
# 转换为灰度图
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 创建SIFT特征检测器
sift = cv2.SIFT_create()
# 检测特征点和计算描述符
kp1, des1 = sift.detectAndCompute(gray1, None)
kp2, des2 = sift.detectAndCompute(gray2, None)
# 创建BFMatcher对象
bf = cv2.BFMatcher(cv2.NORM_L2, crossCheck=True)
# 进行特征匹配
matches = bf.match(des1, des2)
# 按距离排序
matches = sorted(matches, key=lambda x: x.distance)
# 选择前N个最佳匹配点
N_BEST_MATCHES = 100
matches = matches[:N_BEST_MATCHES]
# 提取匹配点的坐标
pts1 = np.float32([kp1[m.queryIdx].pt for m in matches]).reshape(-1, 1, 2)
pts2 = np.float32([kp2[m.trainIdx].pt for m in matches]).reshape(-1, 1, 2)
# 计算投影矩阵
P1 = K @ np.hstack((R1, t1))
P2 = K @ np.hstack((R2, t2))
# 三角测量得到3D点
points_4D = cv2.triangulatePoints(P1, P2, pts1, pts2)
points_3D = points_4D / points_4D[3]
points_3D = points_3D[:3].T
# 可选:显示匹配结果
img_matches = cv2.drawMatches(
img1,
kp1,
img2,
kp2,
matches,
None,
flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS,
)
cv2.imshow("Matches", img_matches)
cv2.waitKey(1) # 显示1毫秒
return points_3D
def main():
# 读取相机参数
cameras = read_camera_parameters(r"10\templeRing\templeR_par.txt")
# 初始化空数组存储所有3D点
all_points_3D = []
# 从连续的图像对重构3D点
for i in range(len(cameras) - 1):
print(f"Processing image pair {i+1}/{len(cameras)-1}")
# 读取图像
img1 = cv2.imread(f"10/templeRing/{cameras[i]['image']}")
img2 = cv2.imread(f"10/templeRing/{cameras[i+1]['image']}")
if img1 is None or img2 is None:
print(f"Failed to load images {i} and {i+1}")
continue
points_3D = reconstruct_3d_points(
img1,
img2,
cameras[i]["K"],
cameras[i]["R"],
cameras[i]["t"],
cameras[i + 1]["R"],
cameras[i + 1]["t"],
)
# 过滤异常点
distances = np.sqrt(np.sum(points_3D**2, axis=1))
mask = distances < np.percentile(distances, 95) # 移除最远的5%的点
points_3D = points_3D[mask]
all_points_3D.append(points_3D)
# 关闭所有窗口
cv2.destroyAllWindows()
# 组合所有点
all_points_3D = np.vstack(all_points_3D)
# 使用plotly进行3D可视化
fig = px.scatter_3d(
x=all_points_3D[:, 0],
y=all_points_3D[:, 1],
z=all_points_3D[:, 2],
title="3D Reconstruction from Multiple Views",
)
# 调整点的大小和视角
fig.update_traces(marker=dict(size=1))
fig.update_layout(scene=dict(aspectmode="data")) # 保持真实比例
# 显示结果
fig.show()
# 保存结果
fig.write_html("10/templeR_multi.html")
if __name__ == "__main__":
main()
+23
View File
@@ -0,0 +1,23 @@
templeRing data set -- 47 views sampled on a ring
The object is a plaster replica of "Temple of the Dioskouroi" in Agrigento (Sicily)
The (tight) bounding box for the templeRing model is
(-0.023121 -0.038009 -0.091940)
(0.078626 0.121636 -0.017395)
--------------------------
Created by Steve Seitz, James Diebel, Daniel Scharstein, Brian Curless, and Rick Szeliski
This directory contains images with camera calibration parameters.
The images were captured using the Stanford spherical light field gantry, and calibrated by the above people.
*.png: images in png format
*_par.txt: camera parameters. There is one line for each image. The format for each line is:
"imgname.png k11 k12 k13 k21 k22 k23 k31 k32 k33 r11 r12 r13 r21 r22 r23 r31 r32 r33 t1 t2 t3"
The projection matrix for that image is given by K*[R t]
The image origin is top-left, with x increasing horizontally, y vertically
*_ang.txt: latitude, longitude angles for each image. Not needed to compute scene->image mapping, but may be helpful for visualization.
Note that (lat, lon) corresponds to the same image as (-lat, 180 + lon), rotated 180 degrees in the image plane. While it would therefore be sufficient in principle to capture only positive latitude images, in practice some images are not useable because of shadows where the gantry occludes the light source. Because the gantry is in a different configuration for positive vs. negative latitude images, this gives us two chances to capture each viewpoint without shadows. It is for this reason that some images may have positive and others negative latitudes. This also explains why some images may appear to be "upside-down" (in fact they're rotated 180 degrees).
Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

+47
View File
@@ -0,0 +1,47 @@
-82.173913 -180.0 templeR0001.png
-82.173913 -172.340426 templeR0002.png
-82.173913 -164.680851 templeR0003.png
-82.173913 -157.021277 templeR0004.png
-82.173913 -149.361702 templeR0005.png
-82.173913 -103.404255 templeR0006.png
-82.173913 -95.744681 templeR0007.png
-82.173913 -88.085106 templeR0008.png
-82.173913 -80.425532 templeR0009.png
-82.173913 -72.765957 templeR0010.png
-82.173913 -65.106383 templeR0011.png
-82.173913 -57.446809 templeR0012.png
-82.173913 49.787234 templeR0013.png
-82.173913 57.446809 templeR0014.png
-82.173913 65.106383 templeR0015.png
-82.173913 72.765957 templeR0016.png
-82.173913 80.425532 templeR0017.png
-82.173913 88.085106 templeR0018.png
-82.173913 95.744681 templeR0019.png
-82.173913 103.404255 templeR0020.png
-82.173913 111.06383 templeR0021.png
-82.173913 118.723404 templeR0022.png
-82.173913 126.382979 templeR0023.png
-82.173913 134.042553 templeR0024.png
-82.173913 141.702128 templeR0025.png
-82.173913 149.361702 templeR0026.png
-82.173913 157.021277 templeR0027.png
-82.173913 164.680851 templeR0028.png
-82.173913 172.340426 templeR0029.png
-82.173913 180.0 templeR0030.png
-82.173913 185.0 templeR0031.png
82.173913 185.0 templeR0032.png
82.173913 180.0 templeR0033.png
82.173913 172.340426 templeR0034.png
82.173913 164.680851 templeR0035.png
82.173913 157.021277 templeR0036.png
82.173913 149.361702 templeR0037.png
82.173913 141.702128 templeR0038.png
82.173913 134.042553 templeR0039.png
82.173913 72.765957 templeR0040.png
82.173913 65.106383 templeR0041.png
82.173913 -134.042553 templeR0042.png
82.173913 -141.702128 templeR0043.png
82.173913 -149.361702 templeR0044.png
82.173913 -157.021277 templeR0045.png
82.173913 -164.680851 templeR0046.png
82.173913 -172.340426 templeR0047.png
+48
View File
@@ -0,0 +1,48 @@
47
templeR0001.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.02187598221295043000 0.98329680886213122000 -0.18068986436368856000 0.99856708067455469000 -0.01266114646423925600 0.05199500709979997700 0.04883878372068499500 -0.18156839221560722000 -0.98216479887691122000 -0.0292149526928 -0.0241923869131 0.52269561933
templeR0002.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.00272557078828676410 0.98353557606148900000 -0.18069405603193772000 0.99651741905514424000 -0.01773058775937118300 -0.08147797111723514800 -0.08334029507718225500 -0.17984270037758626000 -0.98015865977776562000 -0.0288222339759 -0.0306361018019 0.525505113107
templeR0003.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.01625331773280620100 0.98386957700862299000 -0.17814736905031653000 0.97668439268305030000 -0.02252259937820530100 -0.21349550254417543000 -0.21406407160478280000 -0.17746376518636725000 -0.96056399333613396000 -0.0283090812583 -0.0366442193256 0.529139415773
templeR0004.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.03472199972816788400 0.98429285136236500000 -0.17309524976677537000 0.93942192751145170000 -0.02695166652093134900 -0.34170169707277304000 -0.34099974317519038000 -0.17447403941185566000 -0.92373047190496216000 -0.0276846518951 -0.0421095229316 0.533533672172
templeR0005.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.05235090589954815400 0.98479784589115438000 -0.16562785206491965000 0.88539496349116698000 -0.03093875352325572600 -0.46380874523331522000 -0.46188217250287084000 -0.17092687400923678000 -0.87031538103463302000 -0.0269600886818 -0.0469344855587 0.53860946783
templeR0006.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.12459423323539082000 0.98895928871004091000 -0.08022345242268591500 0.28153512590579682000 -0.04229297064421112100 -0.95861842122676455000 -0.95142748011905343000 -0.14202404693648824000 -0.27315731761402628000 -0.0213278189953 -0.0585886486063 0.577671141223
templeR0007.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.12902889964175443000 0.98972522526380413000 -0.06160780416270468500 0.15113946088460242000 -0.04177353409104934300 -0.98762940175607139000 -0.98005530783764949000 -0.13674410526986550000 -0.14419654383234767000 -0.0203322512475 -0.0573229419388 0.584525028903
templeR0008.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.13094087941651120000 0.99047594118902094000 -0.04256637197781731200 0.01804620524972981900 -0.04054762015799551900 -0.99901462700783672000 -0.99122591802964632000 -0.13158001529581215000 -0.01256499108788178600 -0.0193677533749 -0.0551454095765 0.591150514125
templeR0009.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.13029605274095349000 0.99119803974812748000 -0.02343895559951655200 -0.11536955428847780000 -0.03863710562518051000 -0.99257092442413708000 -0.98473996800343433000 -0.12662393165740077000 0.11938833840965069000 -0.0184515371141 -0.052094910199 0.597429363235
templeR0010.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.12710592639585813000 0.99187863526170994000 -0.00456687928660556850 -0.24672704479464908000 -0.03607608317631801800 -0.96841328036616370000 -0.96071319801590616000 -0.12196429450467509000 0.24930876844593125000 -0.0175999521295 -0.0482258792521 0.603249531644
templeR0011.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.12142742908621770000 0.99250558231074071000 0.01371307943275649300 -0.37368215477705607000 -0.03291025497981744900 -0.92697279481025718000 -0.91957437255867858000 -0.11768425637773697000 0.37487783227890548000 -0.0168281951954 -0.0436073606852 0.608507156804
templeR0012.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.11336189346759781000 0.99306769310348053000 0.03107471678989884300 -0.49396938490232206000 -0.02919611501518744300 -0.86898897210910642000 -0.86205761285929272000 -0.11386019401947006000 0.49385476440871356000 -0.0161500382152 -0.0383217716083 0.613108417072
templeR0013.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.11541167827420966000 0.99138900083137627000 0.06187078105613172400 -0.68405289691836879000 0.03416081723372646500 0.72863205583031487000 0.72024424935956100000 -0.12641553542381334000 0.68210507523987296000 -0.0193474918165 0.04321050765 0.589790751867
templeR0014.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.12777196254899612000 0.99067700959105598000 0.04725873733079036200 -0.58073706790091917000 0.03610343749372974000 0.81329023095508723000 0.80400173106295025000 -0.13136058948124074000 0.57993586885009962000 -0.020311130356 0.0452044463785 0.583107596409
templeR0015.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.13807231488914926000 0.98993281310425651000 0.03112975105337044400 -0.46705847237686349000 0.03736281839816532600 0.88343670015589459000 0.87337988254947896000 -0.13651756422101491000 0.46751527827122269000 -0.0213062156734 0.0462806066905 0.576221332616
templeR0016.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.14612892702451932000 0.98916969148300282000 0.01377164253398251200 -0.34504569459932793000 0.03791648656454157900 0.93781971011760457000 0.92714066102459869000 -0.14179443394584298000 0.34684943877257168000 -0.022314990573 0.046419784801 0.569254845159
templeR0017.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.15179802911763335000 0.98840126254897120000 -0.00450583483961328880 -0.21687603817600701000 0.03775456170465282800 0.97546879864789560000 0.96432470798019132000 -0.14709703349180536000 0.22009161800675056000 -0.023319453575 0.0456194969081 0.56233245026
templeR0018.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.15497845444162242000 0.98764123913336677000 -0.02337651432514656000 -0.08483672679970129200 0.03687993341332458700 0.99571210713606428000 0.98426846360370535000 -0.15233073647342665000 0.08950384506078289100 -0.0243016797537 0.0438940243752 0.555577680012
templeR0019.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.15561344905257055000 0.98690318367577234000 -0.04250365307344607100 0.04871602898881084000 0.03530820922726550500 0.99818839849034746000 0.98661603625398486000 -0.15740214868860103000 -0.04258357188737407100 -0.0252441415132 0.0412741578549 0.549111071704
templeR0020.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.15369168129242777000 0.98620026698413343000 -0.06154592189520560800 0.18139894256925762000 0.03306743700817096200 0.98285348259263228000 0.97132553283451883000 -0.16222076935502000000 -0.17381349560262413000 -0.0261300203575 0.0378066496047 0.543048023786
templeR0021.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.14924744465611009000 0.98554503244193847000 -0.08016351596979645600 0.31084431847048910000 0.03019760281070211000 0.94998100742020297000 0.93866980879233486000 -0.16670061131713207000 -0.30184415887715305000 -0.0269435079864 0.033553376496 0.537496729928
templeR0022.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.14236004780071046000 0.98494917289452277000 -0.09802419907642616300 0.43474216742556909000 0.02674991963607963000 0.90015759157026587000 0.88923161473954448000 -0.17076173053075644000 -0.42439081839012904000 -0.0276700874835 0.0285902393879 0.532556254534
templeR0023.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.13315239470762694000 0.98442332131574717000 -0.11480925151440334000 0.55088156138098920000 0.02278591058187676500 0.83427232221223668000 0.82389316365295051000 -0.17433165727608951000 -0.53926665774670712000 -0.0282967932082 0.0230058042978 0.528314759229
templeR0024.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.12178879854502510000 0.98397686167544829000 -0.13021913928564777000 0.65718996007304553000 0.01837631450844677200 0.75350094057292005000 0.74382043863297265000 -0.17734668520280353000 -0.64442168517161924000 -0.02881244142 0.0168997270462 0.524847934694
templeR0025.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.10847204002101654000 0.98361776094118725000 -0.14397887655737707000 0.75177031506244740000 0.01359981962341879100 0.65928479301218457000 0.65044231867598168000 -0.17975301184474191000 -0.73797943386530540000 -0.0292078304973 0.0103809691492 0.522217645599
templeR0026.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.09343976044991392200 0.98335242736691753000 -0.15584291693450159000 0.83293481322054796000 0.00854166382610888240 0.55330519327431971000 0.54542516268715846000 -0.18150769562383026000 -0.81827033939708060000 -0.0294759046107 0.00356585968151 0.520470830197
templeR0027.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.07696020733473872600 0.98318559576803610000 -0.16559954939928406000 0.89923509311540939000 0.00329210872029469690 0.43745332245840185000 0.43064297718262490000 -0.18257942461960402000 -0.88386162939051693000 -0.0296118800403 -0.00342398732706 0.519638659997
templeR0028.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.05932746295193329400 0.98312024330151082000 -0.17307466409173006000 0.94948800754006690000 -0.00205516590155378630 0.31379658989656145000 0.30814408265822768000 -0.18294907352565445000 -0.93358280876354183000 -0.0296133302663 -0.0104638360839 0.519735985312
templeR0029.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.04085617948912668300 0.98315753616677781000 -0.17813486934349265000 0.98279680502378086000 -0.00740473917804992600 0.18454162097682264000 0.18011444315379183000 -0.18261004604395678000 -0.96654661473268999000 -0.0294802294097 -0.017428062139 0.520761069394
templeR0030.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.02187598221295046500 0.98329680886213122000 -0.18068986436368856000 0.99856708067455469000 -0.01266114646423924800 0.05199500709980022000 0.04883878372068523700 -0.18156839221560722000 -0.98216479887691122000 -0.0292149526928 -0.0241923869131 0.52269561933
templeR0031.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.00937296764199993530 0.98344162453868444000 -0.18098264724082042000 0.99925305205489368000 -0.01599729078633601100 -0.03517704715403165800 -0.03748980443482706500 -0.18051774929964823000 -0.98285698692700341000 -0.0289726466043 -0.0284423587627 0.524433248357
templeR0032.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.01469342934183854600 -0.99573306146750762000 -0.09110309234444970200 0.99863024345655671000 -0.01003794245248637200 -0.05135052643564889200 0.05021692929753969500 -0.09173281861943144400 0.99451664138920282000 0.0253214159027 -0.0293792487736 0.618360066
templeR0033.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.00344069629113946850 -0.99586227407284378000 -0.09081020145059000300 0.99933561911064872000 -0.00671916164933668900 0.03582140761425173200 -0.03628335687017435900 -0.09062661830386635500 0.99522376080409014000 0.0251047679644 -0.0251578300064 0.620169213551
templeR0034.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.01363654728930748000 -0.99598585067933787000 -0.08846598117119695800 0.98568300171389711000 -0.00148022139463806730 0.16860257731394196000 -0.16805673063078255000 -0.08949857088903123700 0.98170613785313243000 0.0248682934353 -0.0184255570846 0.6222160467
templeR0035.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.03024984704142087700 -0.99601761198976480000 -0.08386813077789044600 0.95444181867062872000 0.00386319621827520880 0.29837206720415643000 -0.29685983481547856000 -0.08907296066251421700 0.95075772211018139000 0.02475084721 -0.0114787519258 0.6233549331
templeR0036.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.04610273394227399500 -0.99595699121457582000 -0.07709870020861223100 0.90616957770959716000 0.00921573639400264520 0.42281410411234677000 -0.42039414167737649000 -0.08935738275892947400 0.90293079678888799000 0.0247545251495 -0.00444138222871 0.623565549002
templeR0037.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.06091231694352535600 -0.99580507011728536000 -0.06827848836405432700 0.84172768564816447000 0.01448188430858370400 0.53970804907862679000 -0.53645521048635192000 -0.09034676173267966500 0.83907882215347451000 0.0248792616217 0.00256097179509 0.622844136013
templeR0038.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.07441431485673913300 -0.99556455977275171000 -0.05756489441395285000 0.76226612623790635000 0.01956766406619288600 0.64696789666354271000 -0.64297189871304494000 -0.09202344183674107700 0.76034125471255454000 0.0251228306692 0.00940335116174 0.621203567953
templeR0039.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.08636778769614070200 -0.99523975203165982000 -0.04514909992939995800 0.66920287236824150000 0.02438232111996040500 0.74267962004547960000 -0.73804344104027464000 -0.09435750310793368500 0.66812314788867089000 0.0254808858594 0.0159636552164 0.618673120373
templeR0040.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.10793659924390045000 -0.99055951509200579000 0.08450761861721302300 -0.32994878599451571000 0.04449292035991074500 0.94294972223262863000 -0.93780781035583538000 -0.12966197244580752000 -0.32203149494584499000 0.0313386715547 0.0461955496235 0.574657858455
templeR0041.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 0.10064436337366003000 -0.98987287691280146000 0.10011193571939807000 -0.45281218231871551000 0.04402436503296685400 0.89051837871388495000 -0.88590735388350439000 -0.13495755938745446000 -0.44379569342131825000 0.0322465423181 0.0461686603603 0.567676168654
templeR0042.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.09868778720769125200 -0.99342356952296929000 -0.05805456202825097500 0.72029150408413001000 -0.03105781339599184000 -0.69297587358527946000 0.68661551817612676000 -0.11020446335472237000 0.71861958396388448000 0.028650693588 -0.0548464785114 0.59189613682
templeR0043.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.08513547925382919400 -0.99399869748797920000 -0.06869162659612815200 0.80631333030563868000 -0.02823128526067348500 -0.59081452919165756000 0.58532961956802643000 -0.10568625229769273000 0.80387788409161853000 0.0278557511485 -0.0516471860246 0.598117193954
templeR0044.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.07028452998918902100 -0.99451747087193221000 -0.07742793407223566600 0.87794743962593247000 -0.02482290748598041700 -0.47811307921684382000 0.47356982388922148000 -0.10158160952868461000 0.87487873360088786000 0.0271265258805 -0.0476405218956 0.603860347957
templeR0045.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.05439995112000559800 -0.99497063228547356000 -0.08410758709882369700 0.93391553816646533000 -0.02089350177384347000 -0.35688265460073498000 0.35333045847956862000 -0.09796378143513864700 0.93035513898593913000 0.0264760306379 -0.042897984106 0.609023113594
templeR0046.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.03776520743937929200 -0.99535009493528070000 -0.08861138538240269400 0.97321885941264064000 -0.01651318947821050300 -0.22928664648604202000 0.22675722875052765000 -0.09489732918046089900 0.96931710813530791000 0.0259158736918 -0.0375042045812 0.613513359853
templeR0047.png 1520.400000 0.000000 302.320000 0.000000 1525.900000 246.870000 0.000000 0.000000 1.000000 -0.02067714204649669800 -0.99564908739937330000 -0.09085895969899916700 0.99515604481568609000 -0.01176013624456452200 -0.09760197570904494100 0.09610880429798678000 -0.09243697288587854300 0.99106937384832272000 0.0254560509115 -0.0315554340517 0.617250959345