前言
之前经常从csdn上查找问题,直接找代码,今天第一次发博客,记录一下自己解决问题的过程,有不对的地方欢迎大家指正!
一、目的
要处理的文件图片
处理后的文件图片
二、代码
import cv2
import numpy as np
import os
def read_directory(directory_name):
for filename in os.listdir(directory_name):
# im = cv2.imread(directory_name + "/" + filename)
def origin_LBP(img):
dst = np.zeros(img.shape, dtype=img.dtype)
h, w = img.shape
for i in range(1, h - 1):
for j in range(1, w - 1):
center = img[i][j]
code = 0
code |= (img[i - 1][j - 1] >= center) << (np.uint8)(7)
code |= (img[i - 1][j] >= center) << (np.uint8)(6)
code |= (img[i - 1][j + 1] >= center) << (np.uint8)(5)
code |= (img[i][j + 1] >= center) << (np.uint8)(4)
code |= (img[i + 1][j + 1] >= center) << (np.uint8)(3)
code |= (img[i + 1][j] >= center) << (np.uint8)(2)
code |= (img[i + 1][j - 1] >= center) << (np.uint8)(1)
code |= (img[i][j - 1] >= center) << (np.uint8)(0)
dst[i - 1][j - 1] = code
return dst
gray = cv2.imread(directory_name + "/" + filename, cv2.IMREAD_GRAYSCALE)
cv2.imshow('img', gray)
# cv2.waitKey(0)
org_lbp = origin_LBP(gray)
cv2.imshow('org_lbp', org_lbp)
# cv2.waitKey(0)
#####保存图片#########
cv2.imwrite("D://pycharm//CASIA_attack_Image" + "/" + filename, org_lbp)
read_directory("C://Users//osinliu//Desktop//face//CASIA FASD//CASIA FASD//val//CASIA_attack_Image")#这里传入所要读取文件夹的绝对路径,加引号(引号不能省略!)
三、总结
第一次写不是很会写,主要这CSDN写文章还不大会用,总结起来就是,把文件夹中的所有图片用LBP特征算法进行处理,然后再保存到另一个文件夹中。编写功底有限,有不懂得可以留言,我看到了就会给大家回复!