我正在做一个网站,用手机拍照,并对其进行识别处理。
下面是javascript的代码:
// Set constraints for the video stream
var constraints = { video: { facingMode: "environment", width: { ideal: 3000 }, height: { ideal: 3000 } }, audio: false };
// Define constants
const cameraView = document.querySelector("#camera--view"),
cameraSensor = document.querySelector("#camera--sensor"),
cameraTrigger = document.querySelector("#camera--trigger")
// Access the device camera and stream to cameraView
function cameraStart() {
navigator.mediaDevices
.getUserMedia(constraints)
.then(function(stream) {
track = stream.getTracks()[0];
cameraView.srcObject = stream;
})
.catch(function(error) {
console.error("Oops. Something is broken.", error);
});
}
// Take a picture when cameraTrigger is tapped
cameraTrigger.onclick = function() {
cameraTrigger.disabled = true;
cameraTrigger.style.visibility = "hidden";
cameraView.pause();
track.stop();
cameraSensor.width = cameraView.videoWidth;
cameraSensor.height = cameraView.videoHeight;
cameraSensor.getContext("2d").drawImage(cameraView, 0, 0);
document.getElementById("imagen").value = cameraSensor.toDataURL("image/jpeg",1.0);
document.getElementById("bot").click();
};
window.addEventListener("load", cameraStart, false); 我将理想的宽度和高度设置为3000,这对我正在寻找的东西来说已经足够了,在此之前,我遇到了它寻找一些标准分辨率和质量太低的问题。然而,这只适用于一部手机。我正在尝试使用不同的手机,但我只能用一部摄像头最好的one+拍摄3000x3000的图像。其他手机返回的图像是2000x1000左右,但他们的相机是13Mpx,如果我用应用程序拍照,结果是4000x3000。
有什么想法吗?非常感谢你提前
发布于 2020-11-20 22:53:33
当您给出ideal值时,您正在观察这些.getUserMedia()约束的工作方式。你的浏览器和设备的视频输入子系统会尽力满足你的需求。但是如果它不能匹配你想要的,它会给你它能做的。
如果你给了exact约束,例如,你可以让.getUserMedia()失败,而不是给你与你想要的东西不同的东西。
var constraints = {
video: {
facingMode: "environment",
width: { exact: 3000 },
height: { exact: 3000 } },
audio: false };当你的web应用程序打算在许多不同的设备上运行时,如果摄像头子系统对你的应用程序来说不够好,你可以这样做,让它失败。
var constraints = {
video: {
facingMode: "environment",
width: { min: 1920, ideal: 3000 },
height: { min: 1080, ideal: 3000 } },
audio: false };在所有情况下,您都必须像您所做的那样,查看.videoWidth和.videoHeight,以确定相机子系统实际提供给您的内容。
为网络摄像头和移动设备摄像头设计的应用程序必须灵活地处理它们接收到的图片的尺寸。野外相机的质量和分辨率是非常不稳定的。
不幸的是,一个需要非常大图像尺寸的web应用程序在野外不太可能是很有用的。
https://stackoverflow.com/questions/64912234
复制相似问题