python 通过按键(不用鼠标拖动)对图片进行分类

下面代码是对图片进行是否有人进行按键(不用鼠标拖动)二分类,也可以将密码本改成多分类。

import os
import shutil
import cv2

def main(path, save_path, dic, date):
    imglist = os.listdir(path)
    print(len(imglist))   # 文件夹中文件的数量
    for imgname in imglist:
        if imgname.endswith("jpg"):
            img_path = os.path.join(path, imgname)
            img = cv2.imread(img_path)
            H, W = img.shape[0], img.shape[1]
            scale = 0.6
            fimg = cv2.resize(img, (int(W * scale), int(H * scale)))
            cv2.namedWindow("img")
            cv2.moveWindow("img", 0, 0)
            cv2.imshow("img", fimg)
            cv2.waitKey(1)
            while True:
                flag = False
                input_value = input("是否有人:1:有人; 2:没人 ")
                if not input_value:
                    print("您没有输入值,请重新输入!")
                    continue
                print(input_value)
                e = input_value[-1]
                if e in dic:
                    if not os.path.exists(os.path.join(save_path, dic[e])):
                        os.makedirs(os.path.join(save_path, dic[e]))
                    if input_value == "1":
                        shutil.copy(os.path.join(path, imgname), os.path.join(save_path, dic[e]))
                    elif input_value == "2":
                        shutil.copy(os.path.join(path, imgname), os.path.join(save_path, dic[e]))
                    print("目标移动到{}文件夹".format(dic[e]))
                    flag = True
                if flag:
                    cv2.destroyAllWindows()
                    if not os.path.exists(os.path.join(save_path, date)):
                        os.makedirs(os.path.join(save_path, date))
                    shutil.move(os.path.join(img_path), os.path.join(save_path, date))  # 从源文集夹中 剪切 图片到 已处理文件夹
                    break
                else:
                    print("您输入的值没在密码本儿中!")


if __name__ == '__main__':
    src_path = r"D:\person_data"    # 源图片文件夹
    save_path = r"D:\person_cls"    # 按照文件夹分类好的图片文件夹
    date = "1108_processed"         # 已经分类的图片,相当于备份
    dic = {"1": "person", "2": "no-person"}  # 密码本, 根据按数字键(可扩展为字母键),对文件夹中的图片进行分类
    main(src_path, save_path, dic, date)

你可能感兴趣的:(python,opencv,计算机视觉)