python模糊图片过滤的方法
最近在做人脸识别清洗样本的工作,发现经过人脸对齐后存在部分图片十分模糊,所以用opencv滤了一下。
原理就是使用了cv2.Laplacian()这个方法,代码如下。图片越模糊,imageVar的值越小,图像越模糊。
#-*-coding:utf-8-*-
importsys
reload(sys)
sys.setdefaultencoding('utf-8')
importos
importcv2
importshutil
THRESHOLD=30.0
dst_root=r'/media/unionpay/0009FFAB000A9861/CASIA&KFZX_CLEAR'
forfpath,dirs,fsinos.walk('/media/unionpay/0009FFAB000A9861/CASIA&KFZX'):
i=0
fordirindirs:
i+=1
ifi%100==0:
print(str(i)+'foldersprocessedcurrent:'+dir)
abs_dir=os.path.join(fpath,dir)
for_,__,fsinos.walk(abs_dir):
clear_img_list=[]
forfinfs:
item=os.path.join(_,f)
image=cv2.imread(os.path.join("/media/unionpay/0009FFAB000A9861/CASIA&KFZX/0000447",item))
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
imageVar=cv2.Laplacian(gray,cv2.CV_64F).var()
ifnotimageVar=15:
ifnotos.path.exists(dst_folder):
os.mkdir(dst_folder)
foriteminclear_img_list:
dst_path=os.path.join(dst_folder,item.split('/')[-1])
shutil.copy(item,dst_path)
以上这篇python模糊图片过滤的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。