最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java OpenCV利用KNN算法實現(xiàn)圖像背景移除

 更新時間:2022年01月28日 14:43:28   作者:深色風信子  
這篇文章主要為大家介紹了Java OpenCV利用K最鄰近(KNN,K-NearestNeighbor)分類算法實現(xiàn)圖像背景移除的示例代碼,需要的可以參考一下

實現(xiàn)步驟

1 獲取視頻

2 設置形態(tài)學結構

3 創(chuàng)建 Video.createBackgroundSubtractorKNN()

4 提取模型 BS

5 進行形態(tài)學變換

6 膨脹

7 二值化

8 展示結果

示例代碼

package com.xu.opencv;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.imgproc.Imgproc;
import org.opencv.video.BackgroundSubtractorKNN;
import org.opencv.video.Video;
import org.opencv.videoio.VideoCapture;

/**
 * @Title: BSM.java
 * @Package com.xu.opencv
 * @Description: OpenCV-4.1.0 背景消除
 * @author: hyacinth
 * @date: 2019年7月19日 下午22:10:14
 * @version: V-1.0
 * @Copyright: 2019 hyacinth
 */
public class BSM {

    static {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void main(String[] args) {
        BSM_KNN();
    }

    /**
     * OpenCV-4.1.0 視頻分析和對象跟蹤 背景消除 KNN
     *
     * @return: void
     * @date: 2019年7月19日 下午22:10:14
     */
    public static void BSM_KNN() {
        // 1 創(chuàng)建 VideoCapture 對象
        VideoCapture capture = new VideoCapture(0);
        // 2 使用 VideoCapture 對象讀取本地視頻
        capture.open("D:\\BaiduNetdiskDownload\\video_003.avi");
        // 4 使用 Mat video 保存視頻中的圖像幀 針對每一幀 做處理
        Mat video = new Mat();
        // 3 設置結構元素
        Mat kernel1 = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(1, 1), new Point(-1, -1));
        Mat kernel2 = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3, 3), new Point(-1, -1));
        // 4 KNN 背景消除
        BackgroundSubtractorKNN knn = Video.createBackgroundSubtractorKNN();
        Mat bitmask = new Mat();
        while (capture.read(video)) {
            // 5 提取模型 BSM
            knn.apply(video, bitmask, -1);
            // 6 形態(tài)學變換(閉操作)
            Imgproc.morphologyEx(bitmask, bitmask, Imgproc.MORPH_CLOSE, kernel1, new Point(-1, -1));
            // 7 膨脹
            Imgproc.dilate(bitmask, bitmask, kernel2, new Point(-1, -1), 1);
            // 8 二值化
            Imgproc.threshold(bitmask, bitmask, 20, 255, Imgproc.THRESH_BINARY | Imgproc.THRESH_TRIANGLE);
            // 9 將原圖中的背景設置為 Scalar(255, 255, 255)
            for (int i = 0, r = bitmask.rows(); i < r; i++) {
                for (int j = 0, c = bitmask.cols(); j < c; j++) {
                    if (bitmask.get(i, j)[0] <= 150) {
                        video.put(i, j, 255, 255, 255);
                    }
                }
            }
            // 10 顯示
            HighGui.imshow("KNN 背景移除", video);
            int index = HighGui.waitKey(100);
            if (index == 27) {
                capture.release();
                break;
            }
        }
    }

}

結果圖

到此這篇關于Java OpenCV利用KNN算法實現(xiàn)圖像背景移除的文章就介紹到這了,更多相關OpenCV圖像背景移除內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 一文掌握JavaWeb登錄認證

    一文掌握JavaWeb登錄認證

    登錄認證是每個系統(tǒng)中必不可少的功能,通過用戶名和密碼來驗證用戶身份,JavaWeb中實現(xiàn)登錄認證通常需要處理HTTP協(xié)議的無狀態(tài)性,涉及會話管理、令牌技術等,本文給大家介紹JavaWeb登錄認證的相關知識,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 生成PDF全攻略之在已有PDF上添加內容的實現(xiàn)方法

    生成PDF全攻略之在已有PDF上添加內容的實現(xiàn)方法

    下面小編就為大家?guī)硪黄蒔DF全攻略之在已有PDF上添加內容的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 基于java Springboot實現(xiàn)教務管理系統(tǒng)詳解

    基于java Springboot實現(xiàn)教務管理系統(tǒng)詳解

    這篇文章主要介紹了Java 實現(xiàn)簡易教務管理系統(tǒng)的代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Java組件FileUpload上傳文件實現(xiàn)代碼

    Java組件FileUpload上傳文件實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了Java組件FileUpload上傳文件實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java 壓縮圖片并打包成ZIP文件的示例

    Java 壓縮圖片并打包成ZIP文件的示例

    這篇文章主要介紹了Java 壓縮圖片并打包成ZIP文件的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • 淺談MySQL中是如何實現(xiàn)事務提交和回滾的

    淺談MySQL中是如何實現(xiàn)事務提交和回滾的

    本文主要介紹了MySQL中是如何實現(xiàn)事務提交和回滾的,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • java 解析user-agent 信息

    java 解析user-agent 信息

    這篇文章主要介紹了java 解析http user-agent的信息的相關資料,需要的朋友可以參考下
    2016-07-07
  • Java獲取磁盤分區(qū)信息的示例詳解

    Java獲取磁盤分區(qū)信息的示例詳解

    在日常開發(fā)、系統(tǒng)監(jiān)控和資源管理中,磁盤分區(qū)信息是非常重要的數(shù)據,本文將基于 Java 語言實現(xiàn)磁盤分區(qū)信息的獲取功能,感興趣的可以了解下
    2025-03-03
  • Windows系統(tǒng)編寫bat腳本啟動、停止及重啟Java服務jar包

    Windows系統(tǒng)編寫bat腳本啟動、停止及重啟Java服務jar包

    在bat文件中我們將編寫一些代碼來運行Java jar文件,下面這篇文章主要給大家介紹了關于Windows系統(tǒng)編寫bat腳本啟動、停止及重啟Java服務jar包的相關資料,需要的朋友可以參考下
    2023-12-12
  • Java實現(xiàn)的快速查找算法示例

    Java實現(xiàn)的快速查找算法示例

    這篇文章主要介紹了Java實現(xiàn)的快速查找算法,結合具體實例形式分析了快速查找算法的原理與相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09

最新評論

瑞安市| 肇东市| 仁化县| 荆州市| 清苑县| 德州市| 内丘县| 栖霞市| 海原县| 武夷山市| 台东县| 通城县| 班戈县| 柳林县| 洪湖市| 丰城市| 岳阳县| 柳州市| 广元市| 荆门市| 大邑县| 奉新县| 通榆县| 巨鹿县| 兴宁市| 澄迈县| 易门县| 汕尾市| 兴化市| 凉山| 永靖县| 小金县| 鄂伦春自治旗| 龙山县| 莱芜市| 秀山| 昆明市| 玉环县| 凉山| 金溪县| 富平县|