代码拉取完成,页面将自动刷新
# 引入必要的库
import time
import numpy as np
import yaml
import cv2
import os
from skimage import data, color, feature, exposure # 分别用于加载数据,颜色空间转换,特征计算和图像的对比度处理
from joblib import dump as joblib_dump, load as joblib_load
# 获取 0_setting.yaml 中的键 key 对应的值 value
def get(key):
with open('0_setting.yaml', 'r' ,encoding='utf-8') as file:
data = yaml.safe_load(file)
value = data[key]
return value
# 预处理图像, 把图像设置为指定大小之后,展平返回
def preprocess_image(file_name, new_size):
# 1. 读取图像灰度图
img = cv2.imdecode(np.fromfile(file_name), cv2.IMREAD_GRAYSCALE)
# 2. 调整图像大小为 new_size
img = cv2.resize(img, new_size, interpolation=cv2.INTER_AREA)
# 3. 计算HOG特征,orientations为方向的数量,pixels_per_cell定义了每个单元格的大小,cells_per_block定义了每个块的大小,visualize=True表示需要返回HOG图像
hog_edge = feature.hog(img, orientations=9, pixels_per_cell=(8, 8), cells_per_block=(2, 2))
return hog_edge
# 用joblib把叫做 name 的对象 obj 保存(序列化)到位置 loc
def dump(obj, name, loc):
start = time.time()
print(f"把{name}保存到{loc}")
joblib_dump(obj, loc)
end = time.time()
print(f"保存完毕,文件位置:{loc}, 大小:{os.path.getsize(loc) / 1024 / 1024:.3f}M")
print(f"运行时间:{end - start:.3f}秒")
# 用joblib读取(反序列化)位置loc的对象obj,对象名为name
def load(name, loc):
print(f"从{loc}提取文件{name}")
obj = joblib_load(loc)
return obj
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。