国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【opencv】教程代碼 —video(3) 視頻背景剔除

這篇具有很好參考價(jià)值的文章主要介紹了【opencv】教程代碼 —video(3) 視頻背景剔除。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

c++ opencv視頻去除背景,opencv,音視頻,人工智能,計(jì)算機(jī)視覺

c++ opencv視頻去除背景,opencv,音視頻,人工智能,計(jì)算機(jī)視覺

bg_sub.cpp

這段代碼的功能是把視頻中的背景和前景分離,提取出前景的運(yùn)動(dòng)物體。根據(jù)用戶選擇的不同的模式,可以選擇基于MOG2或者基于KNN的方法來進(jìn)行背景減除。在處理每一幀圖像的過程中,首先使用背景減除模型對(duì)圖像幀進(jìn)行處理,得到一個(gè)前景掩碼,該掩碼中包含了所有被認(rèn)為是前景的像素。然后將處理后的掩碼圖像和原始幀同時(shí)顯示出來。通過這種方式,用戶能夠清楚看到前景移動(dòng)物體被成功地從背景中分離出來,這個(gè)過程是實(shí)時(shí)的。

/**
 * @file bg_sub.cpp
 * @brief 背景減除教程樣例代碼
 * @author Domenico D. Bloisi
 */


#include <iostream>  // 引入 C++ 的輸入輸出流庫
#include <sstream>  // 引入字符串流,它是 iostream 的一部分,提供了方便的字符串輸入和輸出功能
#include <opencv2/imgcodecs.hpp>  // 引入 OpenCV 的圖像編解碼模塊,用于圖像的讀取和保存
#include <opencv2/imgproc.hpp>  // 引入 OpenCV 的圖像處理模塊,包含很多圖像處理的功能
#include <opencv2/videoio.hpp>  // 引入 OpenCV 的視頻 IO 模塊,用于視頻保存和讀取、以及本機(jī)攝像頭的訪問
#include <opencv2/highgui.hpp>  // 引入 OpenCV 的高級(jí) GUI 模塊,用于創(chuàng)建界面顯示圖像
#include <opencv2/video.hpp>  // 引入 OpenCV 的視頻分析模塊,包含了許多常見的視頻分析算法,比如對(duì)象跟蹤、運(yùn)動(dòng)估計(jì)等


using namespace cv;  // 使用 OpenCV 命名空間
using namespace std;


const char* params
    = "{ help h         |           | Print usage }"
      "{ input          | vtest.avi | Path to a video or a sequence of image }"
      "{ algo           | MOG2      | Background subtraction method (KNN, MOG2) }";


int main(int argc, char* argv[])  
{
    // 命令行參數(shù)解析
    CommandLineParser parser(argc, argv, params);
    string about_message = "This program shows how to use background subtraction methods provided by "
                  " OpenCV. You can process both videos and images.\n";
    parser.about(about_message);


    if (parser.has("help"))   // 如果有幫助信息
    {
        parser.printMessage();  // 打印使用幫助信息
    }


    // 創(chuàng)建背景減除對(duì)象
    Ptr<BackgroundSubtractor> pBackSub;
     //根據(jù)輸入確定使用 KNN 還是 MOG2 
    if (parser.get<String>("algo") == "MOG2")
        pBackSub = createBackgroundSubtractorMOG2();
    else
        pBackSub = createBackgroundSubtractorKNN();


    // 輸入視頻
    VideoCapture capture( samples::findFile(parser.get<String>("input")) );
    if (!capture.isOpened()){  
        cerr << "Unable to open: " << parser.get<String>("input") << endl;
        return 0;
    }
    Mat frame, fgMask;  // 定義圖像矩陣,用于讀取視頻幀以及存儲(chǔ)背景減除圖像
    while (true) {
        capture >> frame;  // 讀取一幀
        if (frame.empty())
            break;


        // 更新背景模型
        pBackSub->apply(frame, fgMask);
        
        // 在當(dāng)前幀上顯示幀編號(hào)
        rectangle(frame, cv::Point(10, 2), cv::Point(100,20), cv::Scalar(255,255,255), -1);
        // 在 frame 上畫一個(gè)白色矩形,左上角坐標(biāo)為(10, 2),右下角坐標(biāo)為(100, 20),顏色為白色(即 (255,255,255))。
        
        stringstream ss;
        ss << capture.get(CAP_PROP_POS_FRAMES);
        // 用 stringstream 將視頻的當(dāng)前幀數(shù)轉(zhuǎn)換為字符串。
        
        string frameNumberString = ss.str();
        // 將幀數(shù)從 stringstream 轉(zhuǎn)換為 string。
        
        putText(frame, frameNumberString.c_str(), cv::Point(15, 15), FONT_HERSHEY_SIMPLEX, 0.5 , cv::Scalar(0,0,0));
        // 在 frame 上的(15, 15)位置用黑色字體輸出當(dāng)前的幀數(shù)。
        // 顯示當(dāng)前幀和背景掩碼
        imshow("Frame", frame);
        imshow("FG Mask", fgMask);
       
        int keyboard = waitKey(30);  // 獲取鍵盤輸入
        if (keyboard == 'q' || keyboard == 27)
            break;
    }
    return 0;
}

c++ opencv視頻去除背景,opencv,音視頻,人工智能,計(jì)算機(jī)視覺文章來源地址http://www.zghlxwxcb.cn/news/detail-849403.html

到了這里,關(guān)于【opencv】教程代碼 —video(3) 視頻背景剔除的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用 OpenCV 和 GrabCut 算法進(jìn)行交互式背景去除

    ????????我想,任何人都可以嘗試從圖像中刪除背景。當(dāng)然,有大量可用的軟件或工具能夠做到這一點(diǎn),但其中一些可能很昂貴。但是,我知道有人使用窗口繪畫3D魔術(shù)選擇或PowerPoint背景去除來刪除背景。 ????????如果您是計(jì)算機(jī)視覺領(lǐng)域的初學(xué)者,這可能適合您。讓

    2024年02月15日
    瀏覽(18)
  • 使用OpenCV與深度學(xué)習(xí)去除圖像背景:Python實(shí)現(xiàn)指南

    第一部分:簡介和OpenCV的背景去除 在現(xiàn)代的圖像處理和計(jì)算機(jī)視覺應(yīng)用中,背景去除是一個(gè)常見的需求。這不僅用于產(chǎn)品攝影和電商平臺(tái),還廣泛應(yīng)用于各種圖像分析任務(wù)。在這篇文章中,我們將使用OpenCV和深度學(xué)習(xí)技術(shù)來實(shí)現(xiàn)此功能,并通過Python進(jìn)行實(shí)現(xiàn)。本教程會(huì)介紹兩

    2024年01月20日
    瀏覽(20)
  • 怎么去除視頻里的背景音樂?其實(shí)非常簡單!

    怎么去除視頻里的背景音樂?其實(shí)非常簡單!

    如何去除視頻背景音樂?在視頻處理中,有時(shí)我們需要從視頻中提取聲音并進(jìn)行處理,而不僅僅是簡單地去除整個(gè)背景音樂。我們可能需要有選擇性地去除人聲或背景音樂。這個(gè)處理過程對(duì)于選用合適的工具至關(guān)重要。在本文中,我將分享兩種可用于去除視頻背景音樂的工具

    2024年02月14日
    瀏覽(22)
  • video視頻背景層級(jí)過高解決方案

    video視頻背景層級(jí)過高解決方案

    uni-app開發(fā)的項(xiàng)目中使用video標(biāo)簽設(shè)置視頻做為頁面背景,video標(biāo)簽層級(jí)過高,頁面中內(nèi)容不展示。 官方提供了三種辦法: cover-這個(gè)標(biāo)簽使用說明:這個(gè)標(biāo)簽APP端它不支持嵌套,就是就算這種都是不支持的,所以如果你的頁面比較復(fù)雜的話這種方法是不行的,頁面元素簡單的話

    2024年02月03日
    瀏覽(21)
  • 群暉NAS:DS Video、Jellyfin等視頻電影電視劇海報(bào)、背景墻搜刮器

    群暉NAS:DS Video、Jellyfin等視頻電影電視劇海報(bào)、背景墻搜刮器

    本文只使用豆瓣插件方式 ,系統(tǒng)默認(rèn)的 The Movie Database 好注冊(cè),但是授權(quán)碼輸入后域名不通過,很麻煩。 1、插件地址: https://www.aliyundrive.com/s/ufd7MtwspvU 提取碼: 660i 點(diǎn)擊鏈接保存,或者復(fù)制本段內(nèi)容,打開「阿里云盤」APP ,無需下載極速在線查看,視頻原畫倍速播放。 2、使

    2024年02月09日
    瀏覽(30)
  • 計(jì)算機(jī)視覺任務(wù)圖像預(yù)處理之去除圖像中的背景區(qū)域-------使用連通域分析算法(包含完整代碼)

    通過連通域分析算法能夠找到最大的連通域,即圖片的主體部分,然后保存該連通域的最小外接矩陣,即可去除掉無關(guān)的背景區(qū)域 更多圖像預(yù)處理操作工具集包含在這個(gè)github倉庫中

    2024年02月06日
    瀏覽(29)
  • [C++]使用OpenCV去除面積較小的連通域

    [C++]使用OpenCV去除面積較小的連通域

    這是后期補(bǔ)充的部分,和前期的代碼不太一樣 效果圖 源代碼 前期做的,方法可能不太一樣 一,先看效果圖 原圖 處理前后圖 ? 二,實(shí)現(xiàn)源代碼 ? ? ?

    2024年04月10日
    瀏覽(27)
  • 【OpenCV】第二十章: 圖像及視頻去背景

    【OpenCV】第二十章: 圖像及視頻去背景

    第二十一章: 圖像及視頻去背景 我們做目標(biāo)識(shí)別、目標(biāo)檢測(cè)的時(shí)候經(jīng)常需要去背景,比如車輛檢測(cè),就是攝像頭拍攝一段車輛行駛視頻,統(tǒng)計(jì)一下視頻里面的車流量,此時(shí)我們首先要識(shí)別出圖片中的車輛才能計(jì)數(shù)有多少輛車,而要識(shí)別車輛就需要先把車輛從圖像中分割出來再

    2024年02月02日
    瀏覽(20)
  • 詳解OpenCV的視頻背景/前景分割(背景建模/前景提取)類cv::BackgroundSubtractorMOG2,并利用它實(shí)現(xiàn)對(duì)道路監(jiān)控視頻前景/背景的提取

    詳解OpenCV的視頻背景/前景分割(背景建模/前景提取)類cv::BackgroundSubtractorMOG2,并利用它實(shí)現(xiàn)對(duì)道路監(jiān)控視頻前景/背景的提取

    cv::BackgroundSubtractorMOG2和cv::bgsegm::BackgroundSubtractorMOG一樣,都是基于高斯混合模型的背景與前景分割算法。 cv::BackgroundSubtractorMOG2是對(duì)cv::bgsegm::BackgroundSubtractorMOG的改進(jìn),經(jīng)過改進(jìn),它實(shí)現(xiàn)了自適應(yīng)高斯混合模型參數(shù)的更新,增強(qiáng)了復(fù)雜場(chǎng)景背景檢測(cè)的性能。 具體的算法原理可

    2023年04月18日
    瀏覽(20)
  • Topaz Video AI 視頻修復(fù)工具 安裝教程

    Topaz Video AI 視頻修復(fù)工具 安裝教程

    Topaz視頻增強(qiáng)AI是一款功能強(qiáng)大且易于使用的視頻分辨率增強(qiáng)軟件。該軟件的主要功能是無損放大視頻的分辨率,最高可達(dá)8K分辨率,它可以將您的所有低分辨率視頻轉(zhuǎn)換為8K分辨率的高質(zhì)量視頻,還支持批處理。 Topaz Video AI 1.選擇同意協(xié)議 并選擇 Next。 2.選擇下載位置 3.選擇

    2024年02月14日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包