OpenCV使用GoogleNet网络模型实现图像分类
摘要:一、概述 1.案例:使用GoogleNet网络模型实现图像分类。此案例主要在于学习使用已经训练好的模型。 2.GoogleNet:卷积神经网络 3.模型介绍:这个模型中有1000个分类,但是其分类并不准确,只能用于学习使用。 模型中的三个重要文件: 1.网络模型文件:bvlc_googlenet.c
阅读全文
posted @
2022-04-28 13:05
飘杨......
阅读(552)
推荐(0) 编辑
OpenCV使用扩展模块中的TrackerKCF实现视频中单对象跟踪
摘要:一、概述 案例:使用TrackerKCF实现单对象跟踪,而TrackerKCF是扩展模块中的内容所以需要导入头文件:<opencv2/tracking.hpp> 实现步骤: 1.实例化VideoCapture 2.利用VideoCapture.open方法打开视频文件 3.VideoCapture.
阅读全文
posted @
2022-04-26 13:50
飘杨......
阅读(1172)
推荐(0) 编辑
OpenCV使用BSM统计视频中移动的对象
摘要:一、概述 案例:使用BackgroundSubstractor实现视频中移动对象统计 实现步骤: 1.实例化VideoCapture 2.创建BackgroundSubstractor 3.while循环读取视频帧 4.使用BS->apply获取mask 5.对mask进行二值化及形态学操作 6.使
阅读全文
posted @
2022-04-25 22:52
飘杨......
阅读(71)
推荐(0) 编辑
OpenCV连续自适应跟踪算法CAMShift实现视频对象跟踪
摘要:一、概述 案例:使用OpenCV的CAMShift算法实现视频中对象跟踪 算法API介绍: CamShift( InputArray probImage, CV_IN_OUT Rect& window, TermCriteria criteria );probImage:要跟踪对象的直方图反向投影矩
阅读全文
posted @
2022-04-25 19:47
飘杨......
阅读(351)
推荐(0) 编辑
HSV色彩空间对照表+inRange实现像素分离
摘要:一、概述 概述:主要介绍一下HSV色彩空间对照表+inRange对颜色进行分离 inRange(img,low,high),函式会将位于两个区域间的值置为255,位于区间外的值置为0 HSV色彩空间对照表图: 上面的图表使用如下: 例如:过滤黄色像素[(26,43,46)(34,255,255)],
阅读全文
posted @
2022-04-25 16:49
飘杨......
阅读(1400)
推荐(0) 编辑
OpenCV基于稠密光流跟踪
摘要:一、概述 案例:基于稠密光流的视频跟踪 API介绍: calcOpticalFlowFarneback( InputArray prev, InputArray next, InputOutputArray flow, double pyr_scale, int levels, int winsiz
阅读全文
posted @
2022-04-25 13:29
飘杨......
阅读(207)
推荐(0) 编辑
OpenCV使用稀疏光流实现视频对象跟踪
摘要:一、概述 案例:使用稀疏光流实现对象跟踪 稀疏光流API介绍: calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg, InputArray prevPts, InputOutputArray nextPts, OutputArra
阅读全文
posted @
2022-04-21 10:42
飘杨......
阅读(216)
推荐(0) 编辑
OpenCV实现基于颜色的视频对象跟踪(跟踪一个橙子)
摘要:一、概述 案例:基于颜色来实现视频对象的跟踪,本案例跟踪的是一个橙子。 使用到的关键方法:hsv+inRange,区间内白色不再区间内黑色 实现该算法的步骤: 1.创建VideoCapture 2.使用其open方法打开视频 3.while循环读取视频帧frame 4.将frame转hsv色彩空间
阅读全文
posted @
2022-04-18 23:10
飘杨......
阅读(159)
推荐(0) 编辑
OpenCV使用MOG和KNN实现视频背景消除建模(背景差分)
摘要:一、概述 案例:使用MOG和KNN实现视频背景消除建模,使用OpenCV中的createBackgroundSubtractorMOG()和createBackgroundSubtractorKNN()来实现 1.createBackgroundSubtractorMOG()参数介绍: Ptr<Ba
阅读全文
posted @
2022-04-18 21:53
飘杨......
阅读(1322)
推荐(0) 编辑
Qt的QButtonGroup+QRadioButton简单使用
摘要:一、概述 案例:使用Qt的QButtonGroup和QRadioButton做一个简单的选中、未选中的样例(服务于视频背景消除中的一个小案例) ps:基于Qt6.2.3,主要是记录一下,防止后面忘记回看 二、代码示例 QPushButton *choiceVideo = new QPushButto
阅读全文
posted @
2022-04-17 22:24
飘杨......
阅读(710)
推荐(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
飘杨......
阅读(694)
推荐(0) 编辑
小案例:使用OpenCV实现证件照背景替换
摘要:一、概述 案例:使用kmeans算法实现证件照背景替换 算法实现步骤: 1.加载原图像 2.制作kmeans输入参数所需要的数据(kmeans的输入数据类型是CV_32F,所以不能直接使用原始图像的数据,因为原始图像的数据类型为CV_8UC1) 3.使用kmeans算法实现图像分类,并得到分类标签
阅读全文
posted @
2022-04-16 16:54
飘杨......
阅读(1261)
推荐(0) 编辑
OpenCV使用GrabCut实现抠图
摘要:一、概述 案例:使用OpenCV的GrapCut实现有用户交互的抠图 grabCut( InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, in
阅读全文
posted @
2022-04-14 22:07
飘杨......
阅读(1721)
推荐(0) 编辑
Qt的mouseMoveEvent捕获鼠标事件不生效的解决办法
摘要:一、概述 案例:在使用OpenCV的grabCut算法实现简单抠图操作的时候(因为使用到了鼠标坐标选择目标区域),使用到的Qt的鼠标的mousePressEvent(按下)、mouseMoveEvent(移动)、mouseReleaseEvent(释放)事件。实验下来其中只有mousePressEv
阅读全文
posted @
2022-04-13 23:24
飘杨......
阅读(1986)
推荐(0) 编辑
OpenCV使用分水岭算法实现图像分割
摘要:一、概述 案例:使用分水岭算法实现图像的分割实现 API:介绍参考上一遍 实现步骤: 1.输入图像 2.灰度化 3.二值化 4.执行距离变换 5.归一化 6.二值化 7.生成marker:通过findContours+drawContours来创建一个marker 8.将7生成的marker放入分水
阅读全文
posted @
2022-04-12 21:51
飘杨......
阅读(404)
推荐(0) 编辑
OpenCV使用分水岭变换来实现图像中对象计数
摘要:一、概述 案例:使用分水岭变换来实现图像中对象计数,达到统计图像中对象数目的目的 重要API介绍: watershed(src,markers);src:原图像markers:目标markers,生成markers是通过findContours边沿查找+drawContours来实现的。ps:这一步
阅读全文
posted @
2022-04-12 20:21
飘杨......
阅读(356)
推荐(0) 编辑
OpenCV使用GMM实现图像分割
摘要:一、概述 案例:使用GMM机器学习算法实现图像分割 相关API介绍: Ptr<EM> emModel = EM::create();//创建EM实例 emModel->setClustersNumber(numCluster);//设置分类个数 emModel->setCovarianceMatri
阅读全文
posted @
2022-04-11 12:11
飘杨......
阅读(346)
推荐(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
飘杨......
阅读(413)
推荐(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
飘杨......
阅读(76)
推荐(0) 编辑
OpenCV使用级联分类器找出视频文件中的人脸
摘要:一、概述 案例:使用OpenCV自带的级联分类器找出视频中的人脸 操作步骤: 1.实例化VideoCapture 2.使用其open方法打开文件 3.检测是否打开了文件 4.创建CascadeClassifier实例 5.加载加载特征数据 6.循环读取视频文件中的每一帧 7.将读取出来的视频帧转为灰
阅读全文
posted @
2022-04-09 11:18
飘杨......
阅读(253)
推荐(0) 编辑
使用OpenCV中的Haar特征检测图片中的人脸
摘要:一、概述 案例:使用OpenCV的Haar特征数据检测人脸。 相关API介绍 1.使用CascadeClassifier类 2.使用其load方法加载特征文件 3.使用其detectMultiScale方法在多尺度空间进行检测,其中该参数解释如下: /** @brief Detects object
阅读全文
posted @
2022-04-06 16:15
飘杨......
阅读(199)
推荐(0) 编辑
Mac下OpenCV4.5.5+opencv_contrib4.5.5+CMake编译
摘要:一、概述 背景:19年mac机上安装过opencv,昨天清理电脑磁盘(把不要的删除掉),结果把opencv误删除掉了。所以决定重新编译一份。 过程中遇到了不少问题,这里做个记录,以便下次遇到的时候查阅,当然也方便其他开发同学。 二、操作步骤 1.去opencv官网下载下载:opencv源代码和ope
阅读全文
posted @
2022-04-04 16:58
飘杨......
阅读(918)
推荐(0) 编辑