Javascript/html — сделайте снимок с веб-камеры и обработайте его как input type=»file»
У меня есть код, который я могу загрузить, отобразить и запустить на нем распознавание лиц, например
html
<тип ввода="файл"> тело>
javascript
const imageUpload = document.getElementById('imageUpload') Обещание.все([ faceapi.nets.faceRecognitionNet.loadFromUri('/models'), faceapi.nets.faceLandmark68Net.loadFromUri('/models'), faceapi.nets.ssdMobilenetv1.loadFromUri('/models') ]).затем(начало) запуск асинхронной функции () { константный контейнер = document.createElement('div') container.style.position = 'относительный' document.body.append(контейнер) const labeledFaceDescriptors = await loadLabeledImages() const faceMatcher = новый faceapi.FaceMatcher (помеченный как FaceDescriptors, 0.6) пусть изображение пусть холст document.body.append('Загружено') imageUpload.addEventListener('изменить', асинхронный () => { если (изображение) image. remove() если (холст) canvas.remove() изображение = ожидание faceapi.bufferToImage(imageUpload.files[0]) container.append(изображение) холст = faceapi.createCanvasFromMedia (изображение) container.append(холст) const displaySize = {ширина: image.width, высота: image.height} faceapi.matchDimensions (холст, displaySize) константные обнаружения = ожидание faceapi.detectAllFaces(image).withFaceLandmarks().withFaceDescriptors() const resizedDetections = faceapi.resizeResults(обнаружения, displaySize) const results = resizedDetections.map(d =>faceMatcher.findBestMatch(d.descriptor)) results.forEach((результат, я) => { const box = resizedDetections[i].detection.box const drawBox = new faceapi.draw.DrawBox(box, {метка: result.toString()}) drawBox.draw(холст) }) }) }
Я хочу не выбирать изображение для загрузки, а сделать снимок с помощью веб-камеры.
Спасибо
- javascript
- html
- интерфейс
Вы можете использовать navigator. mediaDevices.getUserMedia
API
для получения доступа к камере и ImageCapture
API для снятия скриншота с нее
(вы также можете использовать плюс
элемент
вместо ImageCapture
).
Ссылки MDN:
https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture
Здесь у вас есть кодовая ручка, чтобы показать, как с ее помощью сделать снимок экрана: https://codepen.io/Xion14/pen/yLjyZRP
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Запрос о скрипте, который заставляет веб-камеру снимать изображение каждые x секунд
спросил
Изменено 8 лет, 6 месяцев назад
Просмотрено 3к раз
У меня есть веб-камера Trust USB.
Я ищу (или создаю) скрипт, который мог бы делать скриншот с камеры каждые 10 секунд и сохранять изображение на диск с отметкой времени для имени файла.Я нашел
стример -o 0000.jpeg -s 300x200 -j 100 -t 1 -r 10
Но он запускается только один раз и не сохраняет имя файла как нечто уникальное, поэтому при повторном запуске сценария он переопределяет предыдущие файлы с тем же именем.
Есть идеи по поводу скрипта, который может начать снимать таймлапс фотографии при запуске моей машины?
Спасибо.
- скрипты
- веб-камера
Здесь у вас есть несколько решений, возможно, лучше всего будет запустить вашу команду в одной строке следующим образом:
пока правда; сделать стример -o `date +%Y%m%d-%H%M%S`.jpg -s 300x200 -j 100 -t 1 -r 10; спать 10; сделанный
Вы можете использовать десятичные дроби в скорости. Это работает:
стример -t 99999999999999 -r 0.1 -o 00000.jpeg
Аргумент -t должен быть заполнен по какой-то причине, но вышеуказанное будет работать в течение 3 миллиардов лет (да).