• python 识别图片中的人脸,并裁剪人脸,将图片转化成固定大小,并将图片再按照自己的后缀名存储起来


    下列代码,识别图片中的人脸,并裁剪人脸,将图片转化成固定大小,再按照自己的后缀名存储起来


    bug:我是用来识别单张图片中只有一个人脸的数据集,如果用来处理一张图片中的多个人脸,那么图片的命名可能会有bug

    -

    import cv2
    import os
    import glob
    #最后剪裁的图片大小
    size_m = 48
    size_n = 48
    def detect(img, cascade):
        rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=4, minSize=(30, 30),flags=cv2.CASCADE_SCALE_IMAGE)
        if len(rects) == 0:
            return []
        rects[:, 2:] += rects[:, :2]
        return rects
     
    cascade = cv2.CascadeClassifier("cascades\haarcascade_frontalface_alt2.xml")
    imglist=glob.glob("data/image/jaffe/*")
    for list in imglist:
        
        #print(list)
        # cv2读取图像
        img = cv2.imread(list)
        dst=img
        rects=detect(dst,cascade)
        for x1,y1,x2,y2 in rects:
            #调整人脸截取的大小。横向为x,纵向为y
            roi = dst[y1+10 :y2+20, x1+10 :x2 ]
            img_roi = roi
            re_roi = cv2.resize(img_roi, (size_m, size_n))
            
            #新的图像存到data/image/jaffe_1
            f = "{}/{}".format("data/image", "jaffe_1")
            #print(f)
            if not os.path.exists(f):
                os.mkdir(f)
            #切割图像路径
            path=list.split(".")
            
            #新的图像存到data/image/jaffe_1   并以jpg 为后缀名
            cv2.imwrite("{}/{}_{}.jpg".format(f,path[1],path[2]), re_roi)

    原文:https://blog.csdn.net/SHAOYEZUIZUISHAUI/article/details/103301229

    -

  • 相关阅读:
    DataTable不能通过已删除的行访问该行的信息解决方法
    datatable删除行之datatable.Rows[i].Delete()。标记之后行没有了
    js判断字符串是否在数组中
    发布webservice之后调用不通
    实体类配置xml相关属性排序问题、json前后台交互
    Java堆和栈的区别 经典总结
    Java IO
    XSL 简明教程 (下)
    XSL 简 明 教 程(上)
    跟我学XSL
  • 原文地址:https://www.cnblogs.com/Ph-one/p/12113149.html
Copyright © 2020-2023  润新知