Python 统一文件夹下的图片方向

问题描述

在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 了。


完事儿。

猜你喜欢

转载自blog.csdn.net/m0_50910915/article/details/129089170
今日推荐