OpenCV使用BSM统计视频中移动的对象
摘要:一、概述 案例:使用BackgroundSubstractor实现视频中移动对象统计 实现步骤: 1.实例化VideoCapture 2.创建BackgroundSubstractor 3.while循环读取视频帧 4.使用BS->apply获取mask 5.对mask进行二值化及形态学操作 6.使
阅读全文
posted @
2022-04-25 22:52
飘杨......
阅读(85)
推荐(0)
OpenCV连续自适应跟踪算法CAMShift实现视频对象跟踪
摘要:一、概述 案例:使用OpenCV的CAMShift算法实现视频中对象跟踪 算法API介绍: CamShift( InputArray probImage, CV_IN_OUT Rect& window, TermCriteria criteria );probImage:要跟踪对象的直方图反向投影矩
阅读全文
posted @
2022-04-25 19:47
飘杨......
阅读(404)
推荐(0)
HSV色彩空间对照表+inRange实现像素分离
摘要:一、概述 概述:主要介绍一下HSV色彩空间对照表+inRange对颜色进行分离 inRange(img,low,high),函式会将位于两个区域间的值置为255,位于区间外的值置为0 HSV色彩空间对照表图: 上面的图表使用如下: 例如:过滤黄色像素[(26,43,46)(34,255,255)],
阅读全文
posted @
2022-04-25 16:49
飘杨......
阅读(1613)
推荐(0)
OpenCV基于稠密光流跟踪
摘要:一、概述 案例:基于稠密光流的视频跟踪 API介绍: calcOpticalFlowFarneback( InputArray prev, InputArray next, InputOutputArray flow, double pyr_scale, int levels, int winsiz
阅读全文
posted @
2022-04-25 13:29
飘杨......
阅读(275)
推荐(0)
OpenCV使用稀疏光流实现视频对象跟踪
摘要:一、概述 案例:使用稀疏光流实现对象跟踪 稀疏光流API介绍: calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg, InputArray prevPts, InputOutputArray nextPts, OutputArra
阅读全文
posted @
2022-04-21 10:42
飘杨......
阅读(276)
推荐(0)
OpenCV实现基于颜色的视频对象跟踪(跟踪一个橙子)
摘要:一、概述 案例:基于颜色来实现视频对象的跟踪,本案例跟踪的是一个橙子。 使用到的关键方法:hsv+inRange,区间内白色不再区间内黑色 实现该算法的步骤: 1.创建VideoCapture 2.使用其open方法打开视频 3.while循环读取视频帧frame 4.将frame转hsv色彩空间
阅读全文
posted @
2022-04-18 23:10
飘杨......
阅读(191)
推荐(0)
OpenCV使用MOG和KNN实现视频背景消除建模(背景差分)
摘要:一、概述 案例:使用MOG和KNN实现视频背景消除建模,使用OpenCV中的createBackgroundSubtractorMOG()和createBackgroundSubtractorKNN()来实现 1.createBackgroundSubtractorMOG()参数介绍: Ptr<Ba
阅读全文
posted @
2022-04-18 21:53
飘杨......
阅读(1591)
推荐(0)
Qt的QButtonGroup+QRadioButton简单使用
摘要:一、概述 案例:使用Qt的QButtonGroup和QRadioButton做一个简单的选中、未选中的样例(服务于视频背景消除中的一个小案例) ps:基于Qt6.2.3,主要是记录一下,防止后面忘记回看 二、代码示例 QPushButton *choiceVideo = new QPushButto
阅读全文
posted @
2022-04-17 22:24
飘杨......
阅读(769)
推荐(0)
OpenCV视频绿幕背景替换
摘要:一、概述 案例:使用OpenCV实现视频绿幕背景替换 算法步骤: 1.初始化VideoCapture并使用其open方法加载视频 2.while循环加读取frame capture.read(frame) 3.将frame转hsv色彩空间 4.使用inRange函数生成遮罩mask 5.使用形态学操
阅读全文
posted @
2022-04-16 18:59
飘杨......
阅读(737)
推荐(0)
小案例:使用OpenCV实现证件照背景替换
摘要:一、概述 案例:使用kmeans算法实现证件照背景替换 算法实现步骤: 1.加载原图像 2.制作kmeans输入参数所需要的数据(kmeans的输入数据类型是CV_32F,所以不能直接使用原始图像的数据,因为原始图像的数据类型为CV_8UC1) 3.使用kmeans算法实现图像分类,并得到分类标签
阅读全文
posted @
2022-04-16 16:54
飘杨......
阅读(1446)
推荐(0)
OpenCV使用GrabCut实现抠图
摘要:一、概述 案例:使用OpenCV的GrapCut实现有用户交互的抠图 grabCut( InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, in
阅读全文
posted @
2022-04-14 22:07
飘杨......
阅读(1807)
推荐(0)
Qt的mouseMoveEvent捕获鼠标事件不生效的解决办法
摘要:一、概述 案例:在使用OpenCV的grabCut算法实现简单抠图操作的时候(因为使用到了鼠标坐标选择目标区域),使用到的Qt的鼠标的mousePressEvent(按下)、mouseMoveEvent(移动)、mouseReleaseEvent(释放)事件。实验下来其中只有mousePressEv
阅读全文
posted @
2022-04-13 23:24
飘杨......
阅读(2109)
推荐(0)
OpenCV使用分水岭算法实现图像分割
摘要:一、概述 案例:使用分水岭算法实现图像的分割实现 API:介绍参考上一遍 实现步骤: 1.输入图像 2.灰度化 3.二值化 4.执行距离变换 5.归一化 6.二值化 7.生成marker:通过findContours+drawContours来创建一个marker 8.将7生成的marker放入分水
阅读全文
posted @
2022-04-12 21:51
飘杨......
阅读(446)
推荐(0)
OpenCV使用分水岭变换来实现图像中对象计数
摘要:一、概述 案例:使用分水岭变换来实现图像中对象计数,达到统计图像中对象数目的目的 重要API介绍: watershed(src,markers);src:原图像markers:目标markers,生成markers是通过findContours边沿查找+drawContours来实现的。ps:这一步
阅读全文
posted @
2022-04-12 20:21
飘杨......
阅读(391)
推荐(0)
OpenCV使用GMM实现图像分割
摘要:一、概述 案例:使用GMM机器学习算法实现图像分割 相关API介绍: Ptr<EM> emModel = EM::create();//创建EM实例 emModel->setClustersNumber(numCluster);//设置分类个数 emModel->setCovarianceMatri
阅读全文
posted @
2022-04-11 12:11
飘杨......
阅读(378)
推荐(0)
使用OpenCV的kmeans实现图像分割
摘要:一、概述 案例:使用kmeans算法实现图像分割 kmeans算法参数介绍: kmeans( InputArray data, int K, InputOutputArray bestLabels, TermCriteria criteria, int attempts, int flags, Ou
阅读全文
posted @
2022-04-10 16:34
飘杨......
阅读(459)
推荐(0)
OpenCV使用级联分类器实现猫脸检测
摘要:一、概述 ps:步骤同上一篇https://www.cnblogs.com/tony-yang-flutter/p/16121237.html 二、代码示例 String catFile = "/usr/local/share/opencv4/haarcascades/haarcascade_fro
阅读全文
posted @
2022-04-09 11:40
飘杨......
阅读(97)
推荐(0)
OpenCV使用级联分类器找出视频文件中的人脸
摘要:一、概述 案例:使用OpenCV自带的级联分类器找出视频中的人脸 操作步骤: 1.实例化VideoCapture 2.使用其open方法打开文件 3.检测是否打开了文件 4.创建CascadeClassifier实例 5.加载加载特征数据 6.循环读取视频文件中的每一帧 7.将读取出来的视频帧转为灰
阅读全文
posted @
2022-04-09 11:18
飘杨......
阅读(279)
推荐(0)
使用OpenCV中的Haar特征检测图片中的人脸
摘要:一、概述 案例:使用OpenCV的Haar特征数据检测人脸。 相关API介绍 1.使用CascadeClassifier类 2.使用其load方法加载特征文件 3.使用其detectMultiScale方法在多尺度空间进行检测,其中该参数解释如下: /** @brief Detects object
阅读全文
posted @
2022-04-06 16:15
飘杨......
阅读(227)
推荐(0)
OpenCV使用brisk做一个简单的场景匹配
摘要:一、概述 案例:使用opencv+qt+brisk实现关键点提前、生成描述子,并使用BFMatcher实现场景对象匹配,最后使用drawMatches将匹配结果绘制出来 实现步骤: 1.使用Qt制作场景对象及场景图像的选择页面,并放置一个按钮开始检测 2.使用imread载入场景图像及场景对象 3.
阅读全文
posted @
2022-03-25 16:14
飘杨......
阅读(208)
推荐(0)