除了检测到的脸部形状外,模糊背景(实时视频)

时间:2018-02-02 04:38:07

标签: node.js opencv

im.detectObject('./node_modules/opencv/data/haarcascade_frontalface_alt_tree.xml', {}, function(err, faces) {
    if (err) throw err;
    for(var i = 0; i < faces.length; i++) {
        face = faces[i];
        im.rectangle([face.x, face.y], [face.width, face.height], rectColor, rectThickness);
    }

    faces.forEach( function(face) {
        var faceIm = im.roi(face.x, face.y, face.width, face.height);
        faceIm.gaussianBlur([7,7]); //here i can blur the face(s)
    })

我没有看到任何关于此功能的示例,除了触摸屏幕时手机摄像头的焦点。我可以将屏幕模糊为脸部,所以它就像脸+区域=屏幕,这意味着它能够模糊区域吗?

1 个答案:

答案 0 :(得分:0)

要仅模糊背景,请按以下步骤操作:

1)获取要检测的对象的坐标,如果对象是面部,则可以使用Haar级联进行检测。检查here。有几种方法可以实现这一目标,因此找到适合您目的的方法。

2)保留图像的副本,比如说img_copy,模糊这个图像。

3)现在就这样做: img_copy [x_s:x_e,y_s:y_e] = Original_img [x_s:x_e,y_s:y_e]

其中x_s,x_e,y_s,y_e是对象(面部)的起点和终点坐标

现在img_copy将包含结果。

希望这有帮助!