问题描述
在metashape中对齐照片时,所用的影像处理过,丢失了相机信息,而且它们方向不一致,导出的相机参数xml会出现不只一个sensor,在nerfstudio读取该xml时就会遇到报错。手动一个个改图片方向效率太低,另外后面也可能会遇到类似问题,所以写了几行python脚本一步到位解决问题。
未统一方向时文件夹下面的影像:
解决方案
# File :Unify_image_direction.py
# Auther :WooChi
# Time :2023/02/17
# Version :1.0
# Function :
from PIL import Image
import os
def Uinfy_image_direction(imgFolder,fileSuffix):
g = os.walk(imgFolder)
for path, dir_list, file_list in g:
c=0
for i,file_name in enumerate(file_list):
if file_name[-len(fileSuffix):]==fileSuffix:
print(os.path.join(path, file_name))
img = Image.open(os.path.join(path, file_name))
if(img.size[0]>img.size[1]):
c+=1
img_r = img.transpose(Image.ROTATE_90)
img_r.save(os.path.join(path, file_name))
print(img.size," ---> ",img_r.size)
else:
print(img.size)
print(c,"/",len(file_list)+1," images changed.")
if __name__ == "__main__":
imgFolder = r"D:\Project\CmakeProject\instant-ngp\data\nerf\UAV_01\images"
Uinfy_image_direction(imgFolder,".JPG")
统一方向后文件夹下面的影像:
如果想统一成宽>高的,把if语句里>
改为<
就ok 了。
完事儿。