本文测试环境:

win10  64位

vistual studio 2019

Emgu CV 4.6.0

环境配置准备:

1 新增控制台项目,.net framework为4.7.2

2  把win-x64目录的native目录下的文件全部拷贝到项目的运行目录Debug目录下

3  项目选择x64

4 添加项目引用Emgu.CV.dll、Emgu.CV.Platform.NetFramework.dll、System.Drawing.dll和System.Runtime.InteropServices.RuntimeInformation.dll

具体配置参考:
Emgu CV4图像处理之环境搭建1(C#)_zxy2847225301的博客-CSDN博客

本案例是检测视频运动的车辆

代码中的视频可以从这个地址中下载(需要单独复制到浏览器中打开,这样双击打开会报Forbiden的):

https://vd2.bdstatic.com/mda-jjhtuqg81rtcgtqz/sc/mda-jjhtuqg81rtcgtqz.mp4?v_from_s=hkapp-haokan-hnb&auth_key=1668065179-0-0-6a0e695779701a0e25b4e3428e80fe89&bcevod_channel=searchbox_feed&pd=1&cd=0&pt=3&logid=3379081635&vid=15251757848743272386&abtest=104959_2-105568_2&klogid=3379081635

下载后,把视频的名称修改为:car_run.mp4

想要获取到运动中的车辆,需要比较两帧视频的图片,然后做减法运算

这类比较经典的案例是统计车流量:参考博客如下:

35-运动物体检测1(EmguCV学习)_牛客博客

36-运动物体检测2(EmguCV学习)_牛客博客

我这个是失败品,效果太差了,黑色的车压根就检测不到,后面的就不做了,仅作记录

参考代码如下:

using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.CV.Util;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace EmguCVDemo2
{class Program{static void Main(string[] args){TrackRunCar("car_run.mp4");CvInvoke.WaitKey(0);Console.ReadLine();}/// <summary>/// 检测运动物体/// </summary>private static void TrackRunCar(string videoFile){VideoCapture videoCapture = new VideoCapture(videoFile);if (!videoCapture.IsOpened){Console.WriteLine("视频未打开");}Mat pic = new Mat();Mat bmg = null;while (true){videoCapture.Read(pic);if (pic.IsEmpty){Console.WriteLine("视频帧已经读取完毕");break;}CvInvoke.Resize(pic, pic, new Size(800, 600));CvInvoke.Imshow("raw_pic", pic);//转灰度图CvInvoke.CvtColor(pic, pic, Emgu.CV.CvEnum.ColorConversion.Bgr2Gray);if (bmg == null){bmg = pic.Clone();}Mat target = new Mat();CvInvoke.Subtract(pic, bmg, target);bmg = pic.Clone();//高斯滤波CvInvoke.GaussianBlur(target, target, new Size(3, 3), 0);//二值化CvInvoke.Threshold(target, target, 110, 255, Emgu.CV.CvEnum.ThresholdType.Binary);Mat element = CvInvoke.GetStructuringElement(Emgu.CV.CvEnum.ElementShape.Rectangle, new Size(3, 3), new Point(-1, -1));//腐蚀 CvInvoke.Erode(target, target, element, new Point(-1, -1), 1, Emgu.CV.CvEnum.BorderType.Default, new MCvScalar());//膨胀CvInvoke.Dilate(target, target, element, new Point(-1, -1), 2, Emgu.CV.CvEnum.BorderType.Default, new MCvScalar());CvInvoke.Imshow("target", target);CvInvoke.WaitKey(20);}Console.WriteLine("RemoveImgBackground方法运行结束");}}
}

运行效果如下:

Emgu CV4图像处理之运动物体检测16(C#)相关推荐

  1. 传统运动物体检测方法的Python实现

    传统运动物体检测方法的Python实现 文章目录 传统运动物体检测方法的Python实现 一.目标跟踪算法综述 1. 传统方法:特征提取+滤波类搜索算法 2. 深度学习方法: 目标检测和相似度匹配 二 ...

  2. 【opencv学习】【运动物体检测】

    今天学习运动物体检测 一:帧差法 捕获摄像头的运动的手 import cv2 import numpy as np# 如果我们想捕获一些运动的物体,每一帧图像中,不动的部分称之为背景,运动的物体称之为 ...

  3. Emgu CV4图像处理之访问图像像素通道值7(C#)

    本文测试环境: win10  64位 vistual studio 2019 Emgu CV 4.6.0 环境配置准备: 1 新增控制台项目,.net framework为4.7.2 2  把win- ...

  4. Emgu CV4图像处理之ROI与mask掩码10(C#)

    本文测试环境: win10  64位 vistual studio 2019 Emgu CV 4.6.0 环境配置准备: 1 新增控制台项目,.net framework为4.7.2 2  把win- ...

  5. Emgu CV4图像处理之轮廓查找与绘制15(C#)

    本文测试环境: win10  64位 vistual studio 2019 Emgu CV 4.6.0 环境配置准备: 1 新增控制台项目,.net framework为4.7.2 2  把win- ...

  6. Emgu CV4图像处理之膨胀和腐蚀、梯度计算、开闭运算14(C#)

    本文测试环境: win10  64位 vistual studio 2019 Emgu CV 4.6.0 环境配置准备: 1 新增控制台项目,.net framework为4.7.2 2  把win- ...

  7. python运动物体检测_运动检测ViBe算法python实现代码

    运动物体检测一般分为背景建模和运动物体分析两步.即构建不包含运动物体的背景模型.然后将新的视频帧和背景模型对比,找出其中的运动物体.目前比较好的背景建模算法有两种:1)文章(Zivkovic Z. ( ...

  8. Python-OpenCV运动物体检测

    运动物体检查,在移动目标定位和智能安防系统中有广泛的应用,它的实现原理:捕获连续帧之间的变化情况,将每次捕获的图像进行对比,然后检查差值图像中的所有斑块(颜色相近的地方). Demo在实现的过程中,首 ...

  9. 光流 | 基于光流的实时运动物体检测(MATLAB代码)

    ===================================================== github:https://github.com/MichaelBeechan CSDN: ...

最新文章

  1. Windows Phone 几种页面间传递数据的方式
  2. R语言ggplot2可视化使用不连续的y轴、中断的Y轴来可视化数值分布差异很大的数据实战:把数据轴分为两个区间或者多个区间来匹配不同区间数据的可视化(因为有的数据可能10附近,有的数值可能1W附近)
  3. 北欧小国的宏大AI实验:让1%的人口接受人工智能培训
  4. 一小段jQuery代码的分析与优化
  5. 使用JavaScript在下拉列表中获取选定的值
  6. mysql 触发器 插入或者更新_MySQL 在触发器里中断记录的插入或更新?
  7. 解决pycharm安装包过程出现的问题:module 'pip' has no attribute 'main'
  8. HDU - 5878 A - I Count Two Three H 技巧枚举
  9. 保护可执行程序的一种方法
  10. devc中文注释显示问号_Python零基础入门-(如何让人读懂你的代码)文档注释
  11. Django之form组件加cookie,session
  12. 计算机组成原理-第3章-3.3
  13. SPFA与迪杰斯特拉
  14. matlab如何离散椭圆方程,给出一些椭圆上离散的点的横纵坐标,怎么用matlab拟合出椭圆方程...
  15. 2021年下半场品牌入局小红书的三板斧-小红书数据分析
  16. 读《Google软件测试之道》笔记---SWE,SET,TE职责
  17. Office 2007重新输入序列号激活
  18. BUUCTF-2020寒假刷题记录
  19. 迎难而上,阿里高频考点2023Java岗面试突击手册
  20. python爬取物流信息_python爬虫快递查询系统(源码)

热门文章

  1. ASP.NET给图片加水印
  2. 不同局域网内的主机互访(海蜘蛛实现linux虚拟机与windows虚拟机不同网段间互访)(海蜘蛛的安装与使用)超详细
  3. 最新cydia安装包和依赖包
  4. 冲量在线荣获2021年度长三角智慧城市建设典型实施案例奖,助力长三角一体化、高质量发展
  5. 一篇学会脱壳——06.exe脱壳
  6. Linux中文乱码透彻篇
  7. like用法--mysql
  8. 从零开始创建react+Django项目
  9. matlab删除连通域面积_matlab连通域处理函数
  10. Cisco ASA5520 配置说明