OpenCV成神之路
文章平均质量分 89
从入门到精通,实战opencv
星辰同学wwq
每天进步一点点,让经验转化自我,让行动成就自己。
加油!加油!!加油!!!
展开
-
OpenCV竟然可以这样学!成神之路终将不远(三十六)
返回目录36 SURF简介(加速的强大功能)36.1 目标在这一章当中, - 我们将了解SURF的基础 - 我们将在OpenCV中看到SURF函数36.2 理论在上一章中,我们看到了SIFT用于关键点检测和描述符。但相对缓慢,人们需要更多的加速版本。2006年,三个人,H.Tuytelaars,T.and Van Gool,L,发表了另一篇论文,“SURF:加速健壮的特征”,引入了一种名为“SURF”的新算法。正如名字所表明的那样,它是一个加速版本的SIFT。在SIFT中,Lowe用原创 2021-07-01 10:01:10 · 222 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(三十五)
返回目录目录35 SIFT尺度不变特征变换35.1 目标35.2 理论35.2.1尺度空间极值检测35.2.2关键点定位35.2.3方向分配35.2.4关键点描述35.2.5关键点匹配35 SIFT尺度不变特征变换35.1 目标在这一章当中, - 我们将学习SIFT算法的概念 - 我们将学习找到SIFT关键点和描述算符。35.2 理论在前两章中,我们看到了一些像Harris这样的拐角检测器。它们是旋转不变的,这意味着即使图像旋转了,我们也...原创 2021-06-30 16:03:52 · 189 阅读 · 2 评论 -
OpenCV竟然可以这样学!成神之路终将不远(三十四)
返回目录34Shi-tomas拐角检测器和益于跟踪的特征34.1 目标在本章中, - 我们将学习另一个拐角检测器:Shi-Tomasi拐角检测器 - 我们将看到以下函数:cv.goodFeaturesToTrack()34.2 理论在上一章中,我们看到了Harris Corner Detector。1994年下半年,J.Shi和C.Tomasi在他们的论文《有益于跟踪的特征》中做了一个小修改,与Harris Harris Detector相比,显示了更好的结果。哈里斯角落探测器的计分功.原创 2021-06-30 11:28:22 · 226 阅读 · 3 评论 -
OpenCV竟然可以这样学!成神之路终将不远(三十三)
返回目录目录33哈里斯角检测33.1 目标33.2 理论33.3OpenCV中的哈里斯角检测33.4SubPixel精度的转角33哈里斯角检测33.1 目标在本章中, - 我们将了解”Harris Corner Detection”背后的概念。 - 我们将看到以下函数:cv.cornerHarris() cv.cornerSubPix()33.2 理论在上一章中,我们看到角是图像中各个方向上强度变化很大的区域。Chris Harris和Mike S...原创 2021-06-29 18:38:06 · 247 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(三十二)
返回目录32交互式前景提取使用GrabCut算法32.1 目标在本章中,我们将尝试理解什么是特征,为什么拐角重要等等32.2 解释你们大多数人都会玩拼图游戏。你会得到很多小图像,需要正确组装它们以形成大的真实图像。问题是,你怎么做?将相同的理论投影到计算机程序上,以便计算机可以玩拼图游戏呢?如果计算机可以玩拼图游戏,为什么我们不能给计算机提供很多自然风光的真实图像,并告诉计算机将所有这些图像拼接成一个大图像呢?如果计算机可以将多个自然图像缝合在一起,那么如何给建筑物或任何结构提供大量图.原创 2021-06-29 16:50:23 · 512 阅读 · 12 评论 -
OpenCV竟然可以这样学!成神之路终将不远(三十一)
返回目录目录31交互式前景提取使用GrabCut算法31.1 目标31.2 理论31.3示例31.4练习31交互式前景提取使用GrabCut算法31.1 目标在本章中,我们将看到GrabCut算法来提取图像中的前景。我们将为此创建一个交互式应用程序。31.2 理论GrabCut算法由英国微软研究院的Carsten Rother,Vladimir Kolmogorov和Andrew Blake设计。在他们的论文“GrabCut”中:使用迭代图割的交互式前...原创 2021-06-29 16:25:26 · 370 阅读 · 8 评论 -
OpenCV竟然可以这样学!成神之路终将不远(三十)
返回目录30 图像分割与Watershed算法30.1 目标在本章中,我们将学习使用分水岭算法实现基于标记的图像分割 - 我们将看到:cv.watershed()30.2 理论任何灰度图像都可以看作是一个地形表面,其中高强度表示山峰,低强度表示山谷。你开始用不同颜色的水(标签)填充每个孤立的山谷(局部最小值)。随着水位的上升,根据附近的山峰(坡度),来自不同山谷的水明显会开始合并,颜色也不同。为了避免这种情况,你要在水融合的地方建造屏障。你继续填满水,建造障碍,直到所有的山峰都在水下。然原创 2021-06-29 15:31:27 · 246 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十九)
返回目录29霍夫圈变换29.1 目标在本章中,我们将学习使用霍夫变换来查找图像中的圆。我们将看到以下函数:cv.HoughCircles()29.2 理论圆在数学上表示为,其中是圆的中心,r是圆的半径。从等式中,我们可以看到我们有3个参数,因此我们需要3D累加器进行霍夫变换,这将非常低效。因此,OpenCV使用更加技巧性的方法,即使用边缘的梯度信息的Hough梯度方法。我们在这里使用的函数是cv.HoughCircles()。它有很多参数,这些参数在文档中有很好的解释。因此,我们直.原创 2021-06-25 19:01:36 · 216 阅读 · 4 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十八)
返回目录28霍夫线变换28.1 目标在这一章当中,我们将了解霍夫变换的概念。我们将看到如何使用它来检测图像中的线条。我们将看到以下函数:cv.HoughLines(),cv.HoughLinesP()28.2 理论欢迎评论区留言,一起探讨OpenCV成神之路的奥秘。顺便给我加个关注,点个赞,加个收藏,让我们一起登上神坛。...原创 2021-06-25 18:13:37 · 204 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十七)
返回目录27模板匹配27.1 目标在本节中,我们将学习 - 使用OpenCV查找图像的傅立叶变换 - 利用Numpy中可用的FFT函数-傅立叶变换的某些应用程序 - 我们将看到以下函数:cv.dft(),cv.idft()等27.2 理论傅立叶变换用于分析各种滤波器的频率特性。对于图像,使用2D离散傅里叶变换(DFT)查找频域。欢迎评论区留言,一起探讨OpenCV成神之路.原创 2021-06-25 15:15:55 · 209 阅读 · 4 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十六)
返回目录目录26傅里叶变换26.1 目标26.2 理论26.3Numpy中的傅里叶变换26.4OpenCV中的傅里叶变换26.5DFT的性能优化26.6 为什么拉普拉斯算子是高通滤波器?26.7附加资源26傅里叶变换26.1 目标在本节中,我们将学习 - 使用OpenCV查找图像的傅立叶变换 - 利用Numpy中可用的FFT函数-傅立叶变换的某些应用程序 - 我们将看到以下函数:cv.dft(),cv.idft()等26.2 理论傅立叶...原创 2021-06-24 17:55:47 · 218 阅读 · 2 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十五)
返回目录25直方图-4:直方图反投影25.1 目标在本章中,我们将学习直方图反投影。25.2 理论这是由Michael J.Swain和Dana H.Ballard在他们的论文《通过颜色直方图索引》中提出的。用简单的话说是什么意思?它用于图像分割或在图像中查找感兴趣的对象。简而言之,它创建的图像大小与输入图像相同(但只有一个通道),其中每个像素对应于该像素属于我们物体的概率。用更简单的话来说,与其余部分相比,输出图像将在可能有对象的区域具有更多的白色值。好吧,这是一个直观的解释。(.原创 2021-06-23 17:31:14 · 204 阅读 · 4 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十四)
返回目录目录24直方图-3:二维直方图24.1 目标24.2 介绍24.3 OpenCV中的二维直方图24.4Numpy中的二维直方图24.5 绘制二维直方图24.5.1方法1:使用 cv.imshow()24.5.2方法2:使用Matplotlib24.5.3方法3:OpenCV示例样式24直方图-3:二维直方图24.1 目标在本章中,我们将学习查找和绘制2D直方图。这将在以后的章节中有所帮助。24.2 介绍在第一篇文章中,我们...原创 2021-06-23 15:12:13 · 201 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十三)
返回目录23直方图-2:直方图均衡23.1 目标在本节中,我们将学习直方图均衡化的概念,并利用它来提高图像的对比度。23.2理论考虑这样一个图像,它的像素值仅局限于某个特定的值范围。例如,较亮的图像将把所有像素限制在高值上。但是一幅好的图像会有来自图像所有区域的像素。因此,您需要将这个直方图拉伸到两端(如下图所示,来自wikipedia),这就是直方图均衡化的作用(简单来说)。这通常会提高图像的对比度。我建议您阅读直方图均衡化上的Wikipedia页面,以获取有关它的更多详细..原创 2021-06-23 12:04:35 · 215 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十二)
返回目录目录22直方图-1:查找、绘制和分析22.1 目标22.2理论22.3寻找直方图22.3.1OpenCV中的直方图计算22.3.2numpy的直方图计算22.4绘制直方图22.4.1使用Matplotlib22.4.2使用OpenCV22.5掩码的应用22.6附加资源22直方图-1:查找、绘制和分析22.1 目标学会 - 使用OpenCV和Numpy函数查找直方图 - 使用OpenCV和Matplotlib函数绘...原创 2021-06-22 17:55:50 · 177 阅读 · 3 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十一)
返回目录21轮廓分层这次我们学习轮廓的层次,即轮廓中的父子关系。21.1 理论在前几篇关于轮廓的文章中,我们已经讨论了与OpenCV提供的轮廓相关的几个函数。但是当我们使用cv.findcontour()函数在图像中找到轮廓时,我们已经传递了一个参数,轮廓检索模式。我们通常通过了cv.RETR_LIST或cv.RETR_TREE,效果很好。但这到底意味着什么呢?另外,在输出中,我们得到了三个数组,第一个是图像,第二个是轮廓,还有一个我们命名为hierarchy的输出(请检查前面...原创 2021-06-22 15:16:23 · 257 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二十)
返回目录20 轮廓:更多属性在本章中,我们将学习 - 凸性缺陷以及如何找到它们 - 查找点到多边形的最短距离 - 匹配不同的形状20.1 理论和代码20.1.1凸性缺陷我们看到了关于轮廓的第二章的凸包。从这个凸包上的任何偏差都可以被认为是凸性缺陷。OpenCV有一个函数来找到这个,cv.convexityDefects()。一个基本的函数调用如下:hull = cv.convexHull(cnt,returnPoints = False)defects = cv.convexi.原创 2021-06-22 11:55:20 · 465 阅读 · 6 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十九)
返回目录19轮廓属性在这里,我们将学习提取一些常用的物体属性,如坚实度,等效直径,掩模图像,平均强度等。更多的功能可以在Matlab regionprops文档中找到。19.1 长宽比它是对象边界矩形的宽度与高度的比值。x, y, w, h = cv.boundingRect(cnt)aspect_ratio = float(w)/h19.3范围范围是轮廓区域与边界矩形区域的比值。area = cv.contourArea(cnt)x, y, w, h =..原创 2021-06-21 17:39:59 · 184 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十八)
返回目录17轮廓:入门17.1 目标了解轮廓是什么。 学习查找轮廓,绘制轮廓等。 你将看到以下功能:cv.findContours(),cv.drawContours()17.2什么是轮廓?轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。为了获得更高的准确性,请使用二进制图像。因此,在找到轮廓之前,请应用阈值或canny边缘检测。 从OpenCV 3.2开始,findContours()不再修改源...原创 2021-06-21 16:47:56 · 226 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十七)
返回目录目录16图像金字塔16.1 目标16.2 理论16.3使用金字塔进行图像融合16图像金字塔16.1 目标在本章中, - 我们将学习图像金字塔 - 我们将使用图像金字塔创建一个新的水果“Orapple” - 我们将看到以下功能:cv.pyrUp(),cv.pyrDown()16.2 理论通常,我们过去使用的是恒定大小的图像。但是在某些情况下,我们需要使用不同分辨率的(相同)图像。例如,当在图像中搜索某些(例如人脸)时,我们不确定对象...原创 2021-06-21 14:02:43 · 123 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十六)
15 Canny边缘检测15.1 目标在本章中,我们将学习 - Canny边缘检测的概念 - OpenCV函数: cv.Canny()15.2 理论Canny Edge Detection是一种流行的边缘检测算法。它由John F. Canny发明这是一个多阶段算法,我们将经历每个阶段。 降噪由于边缘检测容易受到图像中噪声的影响,因此第一步是使用5x5高斯滤波器消除图像中的噪声。我们已经在前面的章节中看到了这一点。15.2.1查找图像的强度梯度然后使用Sobel核在...原创 2021-06-19 17:13:16 · 221 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十五)
14 图像梯度14.1 目标在本章中,我们将学习:- 查找图像梯度,边缘等 - 我们将看到以下函数:cv.Sobel(),cv.Scharr(),cv.Laplacian()等14.2理论OpenCV提供三种类型的梯度滤波器或高通滤波器,即Sobel,Scharr和Laplacian。我们将看到他们每一种。14.2.1Sobel和Scharr算子Sobel算子是高斯平滑加微分运算的联合运算,因此它更抗噪声。你可以指定要采用的导数方向,垂直或水平(分别通过参数yorder和...原创 2021-06-19 12:05:17 · 276 阅读 · 2 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十四)
1形态学转换13.1 目标原创 2021-06-18 17:27:02 · 193 阅读 · 2 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十三)
12图像平滑12.1 目标学会: - 使用各种低通滤镜模原创 2021-06-18 15:49:53 · 251 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十二)
11图像阈值11.1 目标在本教程中,您将学习简单阈值,自适应阈值和Otsu阈值。 你将学习函数cv.threshold和cv.adaptiveThreshold。11.2简单阈值在这里,问题直截了当。对于每个像素,应用相同的阈值。如果像素值小于阈值,则将其设置为0,否则将其设置为最大值。函数cv.threshold用于应用阈值。...原创 2021-06-18 11:48:31 · 218 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十一)
返回目录10 图像的几何变换10.1 目标学习将不同的几何变换应用到图像上,如平移、旋转、仿射变换等。 你会看到这些函数: cv.getPerspectiveTransform10.2变换OpenCV提供了两个转换函数cv.warpAffine和cv.warpPerspective,您可以使用它们进行各种转换。cv.warpAffine采用2x3转换矩阵,而cv.warpPerspective采用3x3转换矩阵作为输入。...原创 2021-06-17 17:24:35 · 322 阅读 · 2 评论 -
OpenCV竟然可以这样学!成神之路终将不远(十)
返回目录9 改变颜色空间9.1 目标在本教程中,你将学习如何将图像从一个色彩空间转换到另一个,像BGR↔灰色,BGR↔HSV等 除此之外,我们还将创建一个应用程序,以提取视频中的彩色对象。 你将学习以下功能:cv.cvtColor,cv.inRange等。9.2改变颜色空间...原创 2021-06-16 17:14:45 · 409 阅读 · 11 评论 -
OpenCV竟然可以这样学!成神之路终将不远(九)
返回目录8 性能衡量和提升技术8.1 目标在图像处理中原创 2021-06-16 15:14:12 · 302 阅读 · 4 评论 -
OpenCV竟然可以这样学!成神之路终将不远(八)
返回目录7 图像上的算术运算7.1 目标学习图像的几种算术运算,例如加法,减法,按位运算等。您将学习以下功能:cv.add,cv.addWeighted等。原创 2021-06-15 18:31:29 · 333 阅读 · 4 评论 -
OpenCV竟然可以这样学!成神之路终将不远(七)
返回目录6 图像的基本操作6.1 目标学会: - 访问像素值并修改它们 - 访问图像属性 - 设置感兴趣区域(ROI) - 分割和合并图像。本节中的几乎所有操作都主要与Numpy相关,而不是与OpenCV相关。要使用OpenCV编写更好的优化代码,需要Numpy的丰富知识。6.2访问和修改像素值让我们先加载彩色图像:import numpy as npimport cv2 as cvimg = cv.imread('21.jpg')运行结果如下:你可以通...原创 2021-06-15 15:32:38 · 37687 阅读 · 11 评论 -
OpenCV竟然可以这样学!成神之路终将不远(六)
返回目录1 图像入门--图像要使用opencv之前,我们需要导入opencv,使用import cv2 as cv,接下来,开始重头戏。1.1 读取图像读取图像我们使用的是cv.imread(failname, flags),其中:第一个参数是我们读取的图片名,第二个参数是一个标志,制定了读取图像的方式,一般有以下三种模式。cv.IMREAD_COLOR(1): 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。 cv.IMREAD_GRAYSCALE(0):以灰度模式加载.原创 2021-06-13 22:29:04 · 6413 阅读 · 12 评论 -
OpenCV竟然可以这样学!成神之路终将不远(五)
返回目录4 鼠标作为画笔4.1 简单的演示这里用到函数是cv.setMouseCallback()。在这里,我们创建一个简单的应用程序,无论我们在哪里双击它,都可以在图像上绘制一个圆。首先,我们创建一个鼠标回调函数,该函数在发生鼠标事件时执行。鼠标事件可以是与鼠标相关的任何事物,例如左键按下,左键按下,左键双击等。它为我们提供了每个鼠标事件的坐标(x,y)。通过此活动和地点,我们可以做任何我们喜欢的事情。要列出所有可用的可用事件,请在Python终端中运行以下代码:import..原创 2021-06-11 18:06:25 · 496 阅读 · 11 评论 -
OpenCV竟然可以这样学!成神之路终将不远(四)
返回目录1 图像入门--图像要使用opencv之前,我们需要导入opencv,使用import cv2 as cv,接下来,开始重头戏。1.1 读取图像读取图像我们使用的是cv.imread(failname, flags),其中:第一个参数是我们读取的图片名,第二个参数是一个标志,制定了读取图像的方式,一般有以下三种模式。cv.IMREAD_COLOR(1): 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。 cv.IMREAD_GRAYSCALE(0):以灰度模式加载.原创 2021-06-11 11:31:47 · 241 阅读 · 0 评论 -
OpenCV竟然可以这样学!成神之路终将不远(二)
2 图像入门--视频2.1 从相机中读取视频要捕获视频,你需要创建一个 VideoCapture 对象。它的参数可以是设备索引或视频文件的名称。设备索引就是指定哪个摄像头的数字。正常情况下,一个摄像头会被连接。所以我简单地传0(或-1)。你可以通过传递1来选择第二个相机,以此类推。在此之后,你可以逐帧捕获。但是在最后,不要忘记释放俘虏。代码如下:import cv2 as cvcapture = cv.VideoCapture(0)if not capture.isOpened():原创 2021-06-11 10:19:42 · 360 阅读 · 4 评论 -
OpenCV竟然可以这样学!成神之路终将不远(一)
1 图像入门--图像要使用opencv之前,我们需要导入opencv,使用import cv2 as cv,接下来,开始重头戏。1.1 读取图像读取图像我们使用的是cv.imread(failname, flags),其中:第一个参数是我们读取的图片名,第二个参数是一个标志,制定了读取图像的方式,一般有以下三种模式。cv.IMREAD_COLOR(1): 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。 cv.IMREAD_GRAYSCALE(0):以灰度模式加载图像 cv.原创 2021-06-11 10:07:41 · 6756 阅读 · 11 评论 -
《OpenCV竟然可以这样学!成神之路终将不远 | 寻找C站宝藏》
欢迎关注『自学OpenCV4.1官方文档 @满目星辰wwq』 系列,持续更新自学OpenCV4.1官方文档(02)——图像入门--图像 自学OpenCV4.1官方文档(02)——图像入门--视频 自学OpenCV4.1官方文档(03)——OpenCV中的绘图功能 自学OpenCV4.1官方文档(04)——鼠标作为画笔 自学OpenCV4.1官方文档(05)——轨迹栏作为调色板 自学OpenCV4.1官方文档(06)——图像的基本操作 自学OpenCV4.1官方文档(07)——图像上的算.原创 2021-06-11 09:54:45 · 624 阅读 · 2 评论 -
OpenCV竟然可以这样学!成神之路终将不远(三)
欢迎关注『快速学完OpenCV+python计算机视觉图像处理 @满目星辰wwq』 系列,持续更新快速学完OpenCV+python计算机视觉图像处理(一)快速学完OpenCV+python计算机视觉图像处理(二)快速学完OpenCV+python计算机视觉图像处理(三)快速学完OpenCV+python计算机视觉图像处理(四)快速学完OpenCV+python计算机视觉图像处理(五)以下是快速学完OpenCV+python计算机视觉图像处理的个人总结。任何知识或者学科都不可能快原创 2021-06-11 10:22:58 · 377 阅读 · 0 评论