html5 调用电脑摄像头,html5调用电脑摄像头

以前我们需要使用第三方的插件才能从浏览器里访问用户的摄像头,这不免有些复杂。现在只需要HTML5的画布技术和javaScript,我们就能简单快速的操作用户的摄像头。不仅仅还是访问摄像头,而且是因为HTML5的画布技术及其强大,我们可以给图片上加入各种迷人的滤镜效果。现在,在浏览器里用自己的摄像头给自己拍张照片吧!

代码如下:

Snap Photo

// Put event listeners into place

window.addEventListener("DOMContentLoaded", function() {

// Grab elements, create settings, etc.

var canvas = document.getElementById("canvas"),

context = canvas.getContext("2d"),

video = document.getElementById("video"),

videoObj = { "video": true },

errBack = function(error) {

console.log("Video capture error: ", error.code);

};

// Put video listeners into place

if(navigator.getUserMedia) { // Standard

navigator.getUserMedia(videoObj, function(stream) {

video.src = stream;

video.play();

}, errBack);

} else if(navigator.webkitGetUserMedia) { // WebKit-prefixed

navigator.webkitGetUserMedia(videoObj, function(stream){

video.src = window.webkitURL.createObjectURL(stream);

video.play();

}, errBack);

}

else if(navigator.mozGetUserMedia) { // Firefox-prefixed

navigator.mozGetUserMedia(videoObj, function(stream){

video.src = window.URL.createObjectURL(stream);

video.play();

}, errBack);

}

// 触发拍照动作

document.getElementById("snap")

.addEventListener("click", function() {

context.drawImage(video, 0, 0, 640, 480);

});

}, false);

注:必须要把html文件部署到服务器上才能调用摄像头,在本地无法直接打开调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Python和OpenCV库可以轻松地调用电脑摄像头并将视频流传递到YOLOv5模型中进行目标检测。 以下是一个简单的示例代码: ```python import cv2 import torch from torch.utils.data import DataLoader from models.experimental import attempt_load from utils.datasets import LoadStreams from utils.general import check_img_size, check_requirements, non_max_suppression, scale_coords, set_logging from utils.plots import plot_one_box from utils.torch_utils import select_device, time_sync # 加载YOLOv5模型 weights = 'yolov5s.pt' device = select_device('') model = attempt_load(weights, map_location=device) stride = int(model.stride.max()) # 设置日志和图像大小 set_logging() imgsz = check_img_size(640, s=stride) # 加载摄像头 cap = cv2.VideoCapture(0) # 循环读取视频流并进行目标检测 while cap.isOpened(): # 读取一帧图像 ret, frame = cap.read() if not ret: break img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 图像预处理 img = cv2.resize(img, imgsz) img = torch.from_numpy(img).to(device) img = img.float() / 255.0 if img.ndimension() == 3: img = img.unsqueeze(0) # YOLOv5模型推理 t1 = time_sync() pred = model(img, augment=False)[0] pred = non_max_suppression(pred, 0.4, 0.5, agnostic=False, max_det=1000) t2 = time_sync() # 绘制检测结果 for det in pred: if det is not None and len(det): det[:, :4] = scale_coords(img.shape[2:], det[:, :4], frame.shape).round() for *xyxy, conf, cls in reversed(det): label = f'{model.names[int(cls)]} {conf:.2f}' plot_one_box(xyxy, frame, label=label, color=(0, 255, 0), line_thickness=3) # 显示图像 cv2.imshow('YOLOv5', frame) # 按'q'键退出 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放资源 cap.release() cv2.destroyAllWindows() ``` 此示例代码将打开电脑摄像头并显示实时视频流。YOLOv5模型将在每帧图像上运行目标检测,并将结果绘制在图像上。按下“q”键将退出程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值