R-使用rgl.snapshot保存的图像在dev.off()后变为空白
我有15个标记的x,y,z坐标,这些标记是通过运动捕捉收集的。我正在使用rgl包创建标记的3D图像,我想将每个图像导出为一个单独的png文件。运动捕捉记录的长度为5-15秒,我正在以120 fps的帧速率导出坐标图像。因此,每次录制我必须输出600-2000张图像 我写了一个循环,它应该在每一帧中绘制坐标,并将每个绘图的图像保存为png。然而,我得到的“保存的”图像只是临时文件——当我给出dev.off()时,图像消失,保存的文件转换为空白页。很明显,我对如何处理设备和编写永久图像文件有些误解 我知道rgl使用自己的设备,并且我尝试在达到最大设备数(即导出63个图像后)时使用rgl.close()而不是dev.off()。但是在没有给出dev.off()的情况下,我继续得到“太多打开的设备”错误 我的代码如下所示:R-使用rgl.snapshot保存的图像在dev.off()后变为空白,r,png,rgl,R,Png,Rgl,我有15个标记的x,y,z坐标,这些标记是通过运动捕捉收集的。我正在使用rgl包创建标记的3D图像,我想将每个图像导出为一个单独的png文件。运动捕捉记录的长度为5-15秒,我正在以120 fps的帧速率导出坐标图像。因此,每次录制我必须输出600-2000张图像 我写了一个循环,它应该在每一帧中绘制坐标,并将每个绘图的图像保存为png。然而,我得到的“保存的”图像只是临时文件——当我给出dev.off()时,图像消失,保存的文件转换为空白页。很明显,我对如何处理设备和编写永久图像文件有些误解
for (i in seq(1,nrow(opti),by=2)) {
tframe <- data.frame(matrix(cbind(opti[i, c(seq(1,43,by=3))],
opti[i, c(seq(2,44,by=3))],
opti[i, c(seq(3,45,by=3))]),
nrow = 15, ncol = 3))
par3d("windowRect" = c(0,0,1200,800))
png("filename", res = 600, width = 1200, height = 800)
plot3d(tframe$X1, tframe$X2, tframe$X3, size = 4, box = F, axes = F,
xlab = "", ylab = "", zlab = "")
segments3d(x = as.vector(tframe$X1[c(5,6)]),
y = as.vector(tframe$X2[c(5,6)]),
z = as.vector(tframe$X3[c(5,6)]))
segments3d(x = as.vector(tframe$X1[c(5,7)]),
y = as.vector(tframe$X2[c(5,7)]),
z = as.vector(tframe$X3[c(5,7)]))
segments3d(x = as.vector(tframe$X1[c(6,7)]),
y = as.vector(tframe$X2[c(6,7)]),
z = as.vector(tframe$X3[c(6,7)]))
rgl.snapshot("filename")
}
for(序列中的i(1,nrow(opti),by=2)){
t框架png(~)
是不必要的。您是否可能将所有文件命名为“文件名”?如果是,让我们使用filenamepng()
不仅是不必要的,而且是有害的。它会打开一个文件供基础图形写入。然后rgl.snapshot()
写入该文件。然后,当您调用dev.off()
,基本图形将不存在的绘图写入该文件,并将其清除。@user2554330;感谢您的补充说明。是的,谢谢你们。删除png()并添加定期图形。off()非常有效。png(~)
是不必要的。您可能将所有文件命名为“filename”吗如果是这样,让我们使用filenamepng()
不仅是不必要的,而且是有害的。它会打开一个文件供基本图形写入。然后rgl.snapshot()
写入该文件。然后当您调用dev.off()时
,基本图形会将不存在的绘图写入该文件,并将其清除。@user2554330;感谢您的补充说明。是的,谢谢你们。删除png()并添加周期性图形。off()非常有效。
tframe <- data.frame(matrix(c(1775.061, -1210.373, 901.3876, 2007.21,
-1324.62, 786.1902, 2021.581, -1122.637, 787.6369, 2020.769,
-1214.902, 953.5361, 1832.449, -1226.912, 1281.304, 1721.739,
-1207.299, 1225.152, 1839.68, -1116.221, 1208.916, 1869.173,
-1362.631, 1017.457, 1958.79, -1364.152, 972.9478, 1784.636,
-1489.286, 738.0247, 1874.096, -1460.005, 834.2597, 1880.647,
-1091.414, 1032.096, 1979.333, -1059.292, 958.2598, 1796.085,
-914.6528, 747.6667, 1865.53, -945.6564, 817.4066),
nrow = 15, ncol = 3, byrow = T))