OpenCV
文章平均质量分 93
OpenCV学习相关笔记
吾名招财
硕士,研究方向机器视觉,爱好较广泛
展开
-
基于OpenCV+MFC的视频读取与对象跟踪平台
采用VS开发环境,C++编程语言,MFC框架搭建界面,调用opencv算法库开发。具有读取、暂停、恢复、保存、录制视频的功能,并通过多种对象跟踪算法对视频中的指定物体进行跟踪。所包含的对象跟踪算法有BSM跟踪,颜色跟踪,光流跟踪,KCF多对象跟踪等算法。原创 2024-08-06 21:34:33 · 824 阅读 · 0 评论 -
视频分析与对象跟踪
视频分析与对象跟踪所用环境所用环境本文使用的环境需要包含OpenCV的扩展模块,故使用的是已经编译好扩展模块的OpenCV版本。原创 2020-11-04 08:25:15 · 311 阅读 · 1 评论 -
OpenCV4快速入门
OpenCV4快速入门001-图像读取与显示quickDemo类的定义(头文件)quickDemo类的函数实现002-色彩空间变换(cvtColor)003-图像对象的创建与赋值(m2=m1,clone,copyto)004-图像像素的读写操作(image.at(row, col),image.at(row, col)[0])005-图像像素的算术操作(+,-,multiply,divide)006-trackbar滚动条操作演示-调整图像亮度(add,subtract)007-trackbar滚动条操作演原创 2020-09-15 08:52:14 · 8560 阅读 · 3 评论 -
TensorFlow模型导出到OpenCV调用
TensorFlow模型导出到OpenCV调用一级目录一级目录原创 2020-09-15 15:46:58 · 1352 阅读 · 1 评论 -
win10系统使用Faster-RCNN-TensorFlow-python3-master训练自己的数据集(二)
训练自己的数据集1.建立VOC数据集(1)建立数据集文件结构(2)JPEGImages(3)Annotations(4)ImageSets2.训练数据集(1)下载预训练的VGG16网络模型(2)修改pascal_voc.py(3)修改config.py(4)运行train.py3.测试数据集修改demo.py1.建立VOC数据集参考链接:从零开始制作自己的Pascal VOC数据集.上述参考链接中有标注工具labelimg的下载。(1)建立数据集文件结构建立如下格式的文件结构(仿照标准VOC数据集原创 2020-10-05 16:14:05 · 2102 阅读 · 1 评论 -
win10系统使用Faster-RCNN-TensorFlow-python3-master训练自己的数据集(一)
环境搭建前言1.环境搭建1)win10下安装TensorFlow(1)安装Anaconda(2)新建虚拟环境(3)选择tensorflow版本(4)安装TensorFlow2)安装Faster rcnn框架(1)下载Faster rcnn(2)安装python依赖库(3)编译Faster-RCNN的环境前言本人在win10系统下踩了太多坑,故在此进行归纳总结,光是在win10搭建可以运行的环境就废了很长时间,通过归纳总结,希望以后再遇到此问题时不再彷徨。1.环境搭建参考链接:Windows +Ten原创 2020-10-05 11:14:25 · 2216 阅读 · 1 评论 -
深度神经网络(DNN)之三(使用Faster-RCNN进行对象检测)
Faster-RCNN进行对象检测Faster-RCNN模型下载权重文件及描述文件Faster-RCNN模型下载权重文件及描述文件将下载的描述文件复制到此文件目录下解决无法打开RAW的问题Windows上可以这样办:上https://www.ipaddress.com查一下raw.githubusercontent.com的ipv4地址,比如我现在查到的是199.232.68.133。使用管理员权限打开C:\Windows\System32\drivers\etc\hosts文件原创 2020-09-24 16:05:53 · 653 阅读 · 0 评论 -
深度神经网络(DNN)之二(使用SSD进行对象检测)
SSD进行对象检测一级目录一级目录原创 2020-09-07 16:33:57 · 1028 阅读 · 1 评论 -
深度神经网络(DNN)之使用GoogleNet进行图像分类
使用GoogleNet进行图像分类前提环境模型下载本文所用模型图像分类模型介绍部分操作引入头文件用于加载模型的函数计算后台设置具体操作步骤1.加载模型(读取网络信息)2.构建输入3.输入网络并推测得到输出4.解析输出结果完整代码前提环境本文所用环境VS2017+OpenCV4.4+win10模型下载在贾老师的github上有模型的完整文件https://github.com/gloomyfish1998/opencv_tutorial/本文将其下载到D:\OpenCV\project\下本文原创 2020-09-05 08:38:19 · 1560 阅读 · 0 评论 -
OpenCV在MFC窗口显示图像
OpenCV在MFC窗口显示图像1. OpenCV创建一个窗口并在其中显示图像1.1 读入图像文件1.2 创建一个窗口1.3 在一个窗口中显示一幅图像(属于highgui模块)1.4. 显式地销毁指定窗口1.5. 显式地销毁所有HighGUI窗口1.6 移动窗口到屏幕上指定位置1.7. 重新指定窗口尺寸为指定宽度和高度1.8 把程序中的Mat类型的矩阵保存为图像(imagecodecs.hpp)2. OpenCV读取图像显示在MFC窗口上1. OpenCV创建一个窗口并在其中显示图像前言:第一部分是关于原创 2020-07-20 17:17:15 · 1788 阅读 · 0 评论 -
基于轮廓的连通域标记及应用(opencv及c++)
基于轮廓的连通域标记及应用原创 2020-06-26 14:23:02 · 652 阅读 · 1 评论 -
OpenCV基于形状的模板匹配
OpenCV基于形状的模板匹配引言基于形状的匹配算法具体代码KcgMatch.hKcgMatch.cppmain.cpp匹配的结果引言在OpenCV中有个用于模板匹配的基本函数matchTemplate(),该函数使用某模板在搜索图像中进行搜索时,只能搜索到和模板完全一样的地方,一旦在搜索图像中要搜索的区域相较于模板是旋转了、放大缩小了或者部分遮掩了就无法匹配到结果了。而在halcon中有个基于形状匹配的算子,这个算子非常好用,随便截取一个ROI区域做模板就可以在搜索图像中匹配到相似的区域,并且能输原创 2020-12-11 14:51:53 · 9978 阅读 · 7 评论 -
OpenCV学习笔记之模板匹配
OpenCV模板匹配及基于形状的匹配一级目录一级目录原创 2020-12-11 14:19:34 · 270 阅读 · 2 评论 -
OpenCV学习笔记16(Sobel算子)
Sobel算子卷积应用-图像边缘提取Sobel算子相关API结果显示代码实现卷积应用-图像边缘提取边缘是什么 – 是像素值发生跃迁的地方,是图像的显著特征之一,在图像特征提取、对象检测、模式识别等方面都有重要的作用。如何捕捉/提取边缘 – 对图像求它的一阶导数delta = f(x) – f(x-1), delta越大,说明像素在X方向变化越大,边缘信号越强。Sobel算子是离散微分算子(discrete differentiation operator),用来计算图像灰度的近似梯度原创 2020-09-03 17:09:38 · 185 阅读 · 0 评论 -
OpenCV学习笔记15(处理边缘)
处理边缘卷积边缘问题处理边缘相关API结果演示代码实现卷积边缘问题图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有完全跟kernel重叠,所以当3x3滤波时候有1个像素的边缘没有被处理,5x5滤波的时候有2个像素的边缘没有被处理。处理边缘在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在四周各填充1个像素的边缘,这样就确保图像的边缘被处理,在卷积处理之后再去掉这些边缘。openCV中默认的处理方法是: BORDER_DEFAULT,此外常用的还有如下几种原创 2020-09-02 10:46:30 · 430 阅读 · 0 评论 -
opencv学习笔记14(自定义线性滤波)
自定义线性滤波卷积概念卷积操作filter2D()函数常见算子自定义卷积模糊结果演示代码实现卷积概念卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)卷积操作把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。数学表达如下:Sum = 8x1+6x1+6x1+2x1+8x1+6x1+2x1+2x1+8x1New pixe原创 2020-09-01 16:05:07 · 126 阅读 · 0 评论 -
opencv学习笔记13(基本阈值操作)
基本阈值操作图像阈值相关API阈值类型阈值类型一阈值二值化(threshold binary)阈值反二值化(threshold binary Inverted)截断 (truncate)阈值取零 (threshold to zero)阈值反取零 (threshold to zero inverted)结果显示代码实现图像阈值阈值是什么?简单点说是把图像分割的标尺,这个标尺是根据什么产生的,阈值产生算法?阈值类型。(Binary segmentation)相关API函数原型:double cv::t原创 2020-08-25 14:18:58 · 319 阅读 · 0 评论 -
opencv学习笔记12(图像金字塔)
图像金字塔图像金字塔图像金字塔原创 2020-08-25 14:17:38 · 187 阅读 · 0 评论 -
opencv学习笔记11(形态学操作应用)
形态学操作应用原理方法二值图像与灰度图像上的膨胀操作二值图像与灰度图像上的腐蚀操作结构元素自适应阈值化操作函数原型提取水平与垂直线步骤结果展示提取水平或垂直线去除某图片干扰元素代码实现原理方法图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作 – 膨胀与腐蚀,使用不同的结构元素实现对输入图像的操作、得到想要的结果。膨胀,输出的像素值是结构元素覆盖下输入图像的最大像素值腐蚀原创 2020-08-15 20:45:27 · 278 阅读 · 0 评论 -
opencv学习笔记10(形态学操作)
opencv学习笔记10(形态学操作)形态学操作开操作- open闭操作- close形态学梯度- Morphological Gradient顶帽 – top hat黑帽 – black hat相关API代码实现形态学操作开操作- open先腐蚀后膨胀可以去掉小的对象(亮的),假设对象是前景色,背景是黑色闭操作- close先膨胀后腐蚀(bin2)可以填充小的黑洞(fill hole),假设对象是前景色,背景是黑色形态学梯度- Morphological Gradient原创 2020-08-15 10:35:40 · 217 阅读 · 0 评论 -
opencv学习笔记九(膨胀与腐蚀及trackbar滑动条)
膨胀与腐蚀及trackbar滑动条膨胀与腐蚀膨胀腐蚀opencv中的函数讲解注意膨胀与腐蚀的对象创建滑动条createTrackbar运行效果代码实现膨胀与腐蚀膨胀和腐蚀的主要用途:消除噪声;分割出独立的图像元素,在图像中连接相邻的元素;寻找图像中明显的极大值或极小值区;求出图像的梯度;参考链接:https://blog.csdn.net/qq_40855366/article/details/81177174https://jingyan.baidu.com/article/f96699原创 2020-08-13 13:56:01 · 454 阅读 · 0 评论 -
OpenCV学习笔记八(图像模糊)
图像模糊模糊原理归一化盒子滤波(均值滤波)高斯滤波中值滤波双边滤波相关API模糊原理Smooth/Blur 是图像处理中最简单和常用的操作之一使用该操作的原因之一就为了给图像预处理时候减低噪声使用Smooth/Blur操作其背后是数学的卷积计算通常这些卷积算子计算都是线性操作,所以又叫线性滤波假设有6x6的图像像素点矩阵。卷积过程:6x6上面是个3x3的窗口,从左向右,从上向下移动,黄色的每个像个像素点值之和取平均值赋给中心红色像素作为它卷积处理之后新的像素值。每次移动一个像素格。归原创 2020-08-13 11:09:43 · 261 阅读 · 0 评论 -
opencv学习笔记七(绘制图像和文字)
绘制图像和文字使用cv::Point与cv::Scalar绘制线、矩形、园、椭圆等基本几何形状随机生成与绘制文本随机数生成cv::RNG绘制添加文字代码演示使用cv::Point与cv::ScalarPoint表示2D平面上一个点x,yPoint p;p.x = 10;p.y = 8;orp = Pont(10,8);Scalar表示四个元素的向量Scalar(a, b, c);// a = blue, b = green, c = red表示RGB三个通道绘制线、矩形、园、椭圆等基原创 2020-07-25 09:56:38 · 293 阅读 · 0 评论 -
opencv学习笔记六(调整图像亮度与对比度)
opencv学习笔记六(调整图像亮度与对比度)理论相关函数API自定义函数代码实现效果理论图像变换可以看作如下:像素变换 – 点操作邻域操作 – 区域做图像的卷积,整体的特征的提取或者图像梯度的计算,图像的模式识别,匹配等前期处理,焦点检测,模糊,平滑等操作是需要邻域操作调整图像亮度和对比度属于像素变换-点操作下方是对像素点进行操作的数学表达式,用来调整图像亮度与对比度g(i,j) = a*f(i,j) + b;其中,f(i,j)表示输入图像的像素点的值;g(i,j)为输出图像的像素原创 2020-07-07 11:17:46 · 524 阅读 · 0 评论 -
opencv学习笔记五(图像混合)
opencv学习笔记五(图像混合)图像混合理论-线性混合操作相关API代码实现效果代码演示图像混合理论-线性混合操作理论-线性混合操作的数学原理 :G(x)=(1-a)F(x)+aQ(x)其中a表示某一图像所占权重,(1-a)表示另一图像所占权重,a的取值范围为0~1之间。F(x)和Q(x)为参与混合的两幅输入图像,G(x)表示输出图像G(x)表示通过对两幅图像的每个像素值做线性加权得到最终的输出图像相关APIC++ void addWeighted(InputArray src1,原创 2020-07-05 22:13:24 · 186 阅读 · 0 评论 -
opencv学习笔记四(读写像素)
操作图像像素图像操作读写图像读写像素修改像素值Vec3b与Vec3F图像操作读写图像imread 可以指定加载为灰度或者RGB图像Imwrite 保存图像文件,类型由扩展名决定读写像素读一个GRAY像素点的像素值(CV_8UC1)Scalar intensity = img.at(y, x);或者 Scalar intensity = img.at(Point(x, y));读一个RGB像素点的像素值Vec3f intensity = img.at(y, x);float原创 2020-07-01 09:40:58 · 439 阅读 · 0 评论 -
opencv学习笔记三(Mat对像)
opencv学习笔记三(Mat对象)Mat对象Mat对象与IplImage对象Mat对象构造函数与常用方法Mat对象使用Mat对象使用-四个要点Mat对象创建Mat定义数组代码实现Mat对象Mat对象与IplImage对象Mat对象OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分IplImage是从2001年OpenCV发布之后就一直存在,是C语言风格的数据结构,需要开发者自己分配与管理内存,对大的程序使用它容易导致原创 2020-06-30 20:49:26 · 306 阅读 · 0 评论 -
opencv学习笔记二(矩阵的掩膜操作)
opencv学习笔记二(矩阵的掩膜操作)获取图像像素指针CV_Assert(myImage.depth() == CV_8U);Mat.ptr(int i=0) 获取像素矩阵的指针,索引i表示第几行,从0开始计行数。获得当前行指针const uchar* current= myImage.ptr(row );获取当前像素点P(row, col)的像素值 p(row, col) =current[col]像素范围处理saturate_castsaturate_cast(-100),返回原创 2020-06-29 21:39:36 · 370 阅读 · 0 评论 -
opencv学习笔记一(imread,imshow,cvtColor,imwrite)
opencv学习笔记一引言函数及参数解释加载图像(用cv::imread)显示图像 (cv::namedWindos 与cv::imshow)修改图像 (cv::cvtColor)保存图像(cv::imwrite)图像处理结果及分析引言本人也是初学者,在学习了相关的opencv视频后自己进行了一些笔记,其中函数及参数解释部分来源于学习内容,这里将其进行了部分记录,并对内容进行了函数及参数解释加载图像(用cv::imread)imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像原创 2020-06-26 15:49:34 · 409 阅读 · 0 评论 -
VS2013+OpenCV3.2.0+OpenCV_contrib3.2.0编译过程
VS2013+OpenCV3.2.0+OpenCV_contrib3.2.0编译过程前言相关文件的下载cmake编译OpenCV3.2.01.指定源码目录及build目录2.点击config3.编译中间可能遇到的问题(1)卡在Downloading opencv_ffmpeg64.dll...(2)卡在Downloading ippicv_windows_20151201.zip4.编译成功后5.添加扩展模块6.再次点击config7.点击generate8.点击OpenCV.sln文件9.生成instal原创 2020-11-05 08:48:31 · 388 阅读 · 0 评论 -
OpenCV的下载安装与VS2013的配置
OpenCV的下载安装与VS2013的配置1、下载和安装OpenCV SDK2、配置环境变量3、新建一个控制台应用程序4、VS2013控制台应用程序的属性配置5、第一个VS2013控制台应用程序6、新建一个基于对话框的MFC应用程序7、VS2013的属性配置8、第一个VS2013基于对话框的MFC应用程序9、MFC应用程序中使用OpenCV误报内存泄露问题1、下载和安装OpenCV SDK在OpenCV的官网http://opencv.org的Release栏目中找到OpenCV for Windows原创 2020-07-20 11:16:09 · 475 阅读 · 0 评论