python读取所有图片名写入txt文件,并用opencv播放成视频

  1. 读取目录下图片名

    import os
    import sys
    import argparse
    
    if __name__ == "__main__":
        parser = argparse.ArgumentParser(description="读取输入文件夹下的文件名, 写入txt文件")
        parser.add_argument('dirname', type = str, default = '')
        args = parser.parse_args()
        dirname = args.dirname
        if not os.path.exists(dirname):
            print("error: directory ", dirname, " not exits!")
            sys.exit()
        else:
            print("successful: directory ", dirname, " exist")
        file = open(dirname+"\\filenames.txt", "w")
        ## 读取文件夹dirname下的文件和子文件夹,并判断是文件还是文件夹
        names = os.listdir(dirname)
        for name in names:
            # path = os.path.join(dirname, name)  ##很有必要,不然结果会不对
            if name.split('.')[-1]=='png': ##png格式的图片才写入,可以改成jpg
                file.write("{0}\n".format(name))
        file.close()
    
  2. 读取图片并播放

    import os
    import argparse
    import cv2
    
    if __name__ == "__main__":
        parser = argparse.ArgumentParser()
        #文件夹里有图片和写入图片名的txt文件
        parser.add_argument("dir_name")
        args = parser.parse_args()
        dir_name = args.dir_name
        image_files = []
        with open(dir_name + "\\filenames.txt", "r") as f:
            for line in f.readlines():
                line = line.strip('\n')
                image_files.append(line)
        N = len(image_files)
        cv2.namedWindow("image_video", cv2.WINDOW_AUTOSIZE)
        for i in image_files:
            image_file = os.path.join(dir_name, i)
            image = cv2.imread(image_file, cv2.IMREAD_UNCHANGED)
            cv2.imshow("image_video", image)
            ##帧率为1000/50 = 20 pfs
            key = cv2.waitKey(50)
            ##点击q或Esc退出
            if key & 0xFF == ord('q') or key == 27:
                cv2.destroyAllWindows()
                break
    

猜你喜欢

转载自blog.csdn.net/qq_41253960/article/details/128268787