Emgu CV4图像处理之运动物体检测16(C#)
本文测试环境:
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#)相关推荐
- 传统运动物体检测方法的Python实现
传统运动物体检测方法的Python实现 文章目录 传统运动物体检测方法的Python实现 一.目标跟踪算法综述 1. 传统方法:特征提取+滤波类搜索算法 2. 深度学习方法: 目标检测和相似度匹配 二 ...
- 【opencv学习】【运动物体检测】
今天学习运动物体检测 一:帧差法 捕获摄像头的运动的手 import cv2 import numpy as np# 如果我们想捕获一些运动的物体,每一帧图像中,不动的部分称之为背景,运动的物体称之为 ...
- Emgu CV4图像处理之访问图像像素通道值7(C#)
本文测试环境: win10 64位 vistual studio 2019 Emgu CV 4.6.0 环境配置准备: 1 新增控制台项目,.net framework为4.7.2 2 把win- ...
- Emgu CV4图像处理之ROI与mask掩码10(C#)
本文测试环境: win10 64位 vistual studio 2019 Emgu CV 4.6.0 环境配置准备: 1 新增控制台项目,.net framework为4.7.2 2 把win- ...
- Emgu CV4图像处理之轮廓查找与绘制15(C#)
本文测试环境: win10 64位 vistual studio 2019 Emgu CV 4.6.0 环境配置准备: 1 新增控制台项目,.net framework为4.7.2 2 把win- ...
- Emgu CV4图像处理之膨胀和腐蚀、梯度计算、开闭运算14(C#)
本文测试环境: win10 64位 vistual studio 2019 Emgu CV 4.6.0 环境配置准备: 1 新增控制台项目,.net framework为4.7.2 2 把win- ...
- python运动物体检测_运动检测ViBe算法python实现代码
运动物体检测一般分为背景建模和运动物体分析两步.即构建不包含运动物体的背景模型.然后将新的视频帧和背景模型对比,找出其中的运动物体.目前比较好的背景建模算法有两种:1)文章(Zivkovic Z. ( ...
- Python-OpenCV运动物体检测
运动物体检查,在移动目标定位和智能安防系统中有广泛的应用,它的实现原理:捕获连续帧之间的变化情况,将每次捕获的图像进行对比,然后检查差值图像中的所有斑块(颜色相近的地方). Demo在实现的过程中,首 ...
- 光流 | 基于光流的实时运动物体检测(MATLAB代码)
===================================================== github:https://github.com/MichaelBeechan CSDN: ...
最新文章
- Windows Phone 几种页面间传递数据的方式
- R语言ggplot2可视化使用不连续的y轴、中断的Y轴来可视化数值分布差异很大的数据实战:把数据轴分为两个区间或者多个区间来匹配不同区间数据的可视化(因为有的数据可能10附近,有的数值可能1W附近)
- 北欧小国的宏大AI实验:让1%的人口接受人工智能培训
- 一小段jQuery代码的分析与优化
- 使用JavaScript在下拉列表中获取选定的值
- mysql 触发器 插入或者更新_MySQL 在触发器里中断记录的插入或更新?
- 解决pycharm安装包过程出现的问题:module 'pip' has no attribute 'main'
- HDU - 5878 A - I Count Two Three H 技巧枚举
- 保护可执行程序的一种方法
- devc中文注释显示问号_Python零基础入门-(如何让人读懂你的代码)文档注释
- Django之form组件加cookie,session
- 计算机组成原理-第3章-3.3
- SPFA与迪杰斯特拉
- matlab如何离散椭圆方程,给出一些椭圆上离散的点的横纵坐标,怎么用matlab拟合出椭圆方程...
- 2021年下半场品牌入局小红书的三板斧-小红书数据分析
- 读《Google软件测试之道》笔记---SWE,SET,TE职责
- Office 2007重新输入序列号激活
- BUUCTF-2020寒假刷题记录
- 迎难而上,阿里高频考点2023Java岗面试突击手册
- python爬取物流信息_python爬虫快递查询系统(源码)