# 导入相关库
import cv2
import numpy as np
import tensorflow as tf
# 加载训练好的模型
model = tf.keras.models.load_model('安全帽检测模型.h5')
# 定义图像预处理函数
def preprocess_image(image):
image = cv2.resize(image, (input_width, input_height))
image = image / 255.0
image = np.expand_dims(image, axis=0)
return image
# 定义安全帽检测函数
def detect_helmet(image):
processed_image = preprocess_image(image)
predictions = model.predict(processed_image)
# 解析预测结果,判断是否佩戴安全帽
if predictions[0][0] > 0.5:
return '未佩戴安全帽'
else:
return '佩戴安全帽'
# 主函数
def main():
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取视频帧
ret, frame = cap.read()
if not ret:
break
# 进行安全帽检测
result = detect_helmet(frame)
# 在图像上显示检测结果
cv2.putText(frame, result, (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
cv2.imshow('安全帽检测', frame)
# 按下q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头资源
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
main()# 导入相关库
import cv2
import numpy as np
from sklearn.ensemble import RandomForestClassifier
# 定义图像预处理函数
def preprocess_image(image):
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred_image = cv2.GaussianBlur(gray_image, (5, 5), 0)
return blurred_image
# 定义特征提取函数
def extract_features(image):
# 计算图像的灰度共生矩阵
glcm = cv2.calcGrayLevelCooccurrenceMatrix(image, [1], [0, np.pi / 4, np.pi / 2, 3 * np.pi / 4])
# 提取纹理特征(如对比度、相关性、能量、熵等)
contrast = cv2.features.texture.glmcmContrast(glcm)
correlation = cv2.features.texture.glmcmCorrelation(glcm)
energy = cv2.features.texture.glmcmEnergy(glcm)
entropy = cv2.features.texture.glmcmEntropy(glcm)
# 提取边缘特征(如边缘数量、边缘长度等)
edges = cv2.Canny(image, 100, 200)
edge_count = np.count_nonzero(edges)
edge_length = cv2.arcLength(cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[0], True)
features = np.array([contrast, correlation, energy, entropy, edge_count, edge_length])
return features
# 加载训练好的质量评估模型
model = RandomForestClassifier()
model.load('混凝土质量评估模型.pkl')原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。