opencv - 我怎样才能填补空白并改善前景提取?

标签 opencv

我想改进我的 opencv.js 项目的前景提取。我正在从静态背景中提取移动前景。我的输出前景有间隙并且有点嘈杂。我怎样才能用原始的前景对象颜色填补这个空白?

输入

Input

输出

Output

这是我的代码:

let video = document.getElementById('videoInput');
let cap = new cv.VideoCapture(video);

let frame = new cv.Mat(video.height, video.width, cv.CV_8UC4);
let fgmask = new cv.Mat(video.height, video.width, cv.CV_8UC1);
let fgbg = new cv.BackgroundSubtractorMOG2(500, 16, false);

const FPS = 30;
function processVideo() {
    try {
        if (!streaming) {
            // clean and stop.
            frame.delete(); fgmask.delete(); fgbg.delete();
            return;
        }
        let begin = Date.now();
        // start processing.
        cap.read(frame);
        fgbg.apply(frame, fgmask);

        frame.copyTo(fgmask, fgmask)    
        cv.imshow('canvasOutput', fgmask);
        // schedule the next one.
        let delay = 1000/FPS - (Date.now() - begin);
        setTimeout(processVideo, delay);
    } catch (err) {
        utils.printError(err);
    }
};

// schedule the first one.
setTimeout(processVideo, 0);

最佳答案

对最终图像先腐 eclipse 再膨胀,调整内核大小和迭代次数以获得最佳结果

内核 = np.ones((5,5),np.uint8)

侵 eclipse = cv.erode(img,kernel,iterations = 1)

膨胀 = cv.dilate(img,kernel,iterations = 1)

关于opencv - 我怎样才能填补空白并改善前景提取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48809225/

相关文章:

opencv - 解码 MB 时出现 ffmpeg RTSP 错误

python - 在 Raspberry Pi 上保存图像流的最快方法

c++ - 矩阵乘法及其转置

python - OpenCV 中的图像转换

xml - 如何在 XML 中保存和读取 OpenCV 中新的 C++ 样式矩阵对象?

python - 我怎样才能找到最接近特定点的文本?

android - 使用findHomography时Android opencv的断言错误

python - 使用PyAV的视频中的帧数

python - 为什么这个 python 程序在处理图像时会将蓝色转换为黄色?

opencv - 如何使用opencv自动检测并填充封闭区域?