【发布时间】:2019-06-07 08:17:12
【问题描述】:
我正在尝试通过 OpenCV.js 使用面部识别,但是当我调用 CascadeClassifier 对象的 detectMultiScale() 方法时,我收到错误:
未捕获 6446128 - 异常捕获已禁用,无法捕获此异常。编译时使用 -s DISABLE_EXCEPTION_CATCHING=0 或 DISABLE_EXCEPTION_CATCHING=2 来捕获。
问题是我直接从opencv.org 使用opencv.js 的托管版本 - 它不是构建版本,因为我无法自己构建它,因此无法按照错误说明进行操作。
我从他们的 GitHub here 中获取了一个示例,并根据我的需要调整了代码,如下所示:
<html>
<head>
<script src="https://docs.opencv.org/master/opencv.js"></script>
<script src="https://docs.opencv.org/master/utils.js"></script>
</head>
<body>
<img id="test" src="image/with/face.jpg" alt=""/>
<canvas id="output"></canvas>
<script>
let face_cascade = new cv.CascadeClassifier();
face_cascade.load("https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades_cuda/haarcascade_frontalface_default.xml");
function face_detector() {
let imgEl = document.getElementById("test");
let img = cv.imread(imgEl);
cv.imshow("output", img);
let src = cv.imread("output");
let gray = new cv.Mat();
let msize = new cv.Size(0,0);
cv.cvtColor(src, gray, cv.COLOR_RGBA2GRAY, 0);
let faces = new cv.RectVector();
face_cascade.detectMultiScale(gray, faces, 1.1, 3, 0, msize, msize); //Error occurs here
}
face_detector();
</script>
</body>
</html>
任何有 OpenCV.js 和面部识别经验的人可以提供帮助吗?
【问题讨论】:
标签: javascript html opencv