- 博客(44)
- 收藏
- 关注
原创 python-opencv Tutorials 一码人翻译(37)---- 特征检测和描述---ORB (Oriented FAST and Rotated BRIEF)
目标在这一章,我们将看到ORB的基础知识理论作为一个OpenCV爱好者,关于这个球体最重要的一点是它来自于“OpenCV实验室”。这一算法是由伊桑鲁布利、文森特拉博、库尔特科诺利奇和加里r布拉德斯基在他们的纸球中提出的:在2011年,这是一种有效的筛选或冲浪的替代品。正如标题所言,在计算成本、匹配性能和主要专利方面,这是一个不错的选择。是的,筛选和冲浪都是专利的,你应该为它的使用付...
2018-08-25 20:20:25 383
原创 python-opencv Tutorials 一码人翻译(36)---- 特征检测和描述---筛选(尺度-不变特性转换)
目标在这一章,我们将学习筛选算法的概念我们将学习如何找到筛选的关键字和描述符。理论在最后几章中,我们看到了一些像Harris这样的角落探测器,它们是旋转不变的,也就是说,即使图像是旋转的,我们也能找到相同的角。这是显而易见的,因为在旋转的图像中,角也是角。但是比例呢?如果图像被缩放,一个角落可能不会是一个角落。例如,检查下面的一个简单的图像。在一个小窗口中,一个小图像的一个角落...
2018-08-23 08:34:37 274
原创 python-opencv Tutorials 一码人翻译(35)---- 特征检测和描述---Shi-Tomasi角探测器和良好的特性
代码OpenCV有一个功能,cv.goodfeaturestotrack()。它通过Shi-Tomasi方法(或哈里斯角检测,如果你指定它)发现图像中最坚固的角落。像往常一样,图像应该是一个灰度图像。然后你指定你想要找到的角数。然后你指定质量级别,这是0-1之间的值,它表示每个人都被拒绝的最小值。然后我们提供了检测到的角之间的最小欧几里得距离。有了这些信息,函数就会在图像中找到角。质量水平...
2018-08-23 08:19:39 302
原创 python-opencv Tutorials 一码人翻译(34)---- 特征检测和描述---角检测
图像因此,哈里斯角检测的结果是一个带有这些分数的灰度图像。合适的阈值给你的图像的角。我们将用一个简单的图像来做。位于OpenCV的哈里斯角探测器OpenCV有这个功能的cv.cornerHarris()。它的参数是:img-输入图像,应该是灰度和浮动32型。blockSize——它是被认为是角落检测的邻居的大小ksize-使用的Sobel衍生物的孔径参数。k-哈里斯探测...
2018-08-23 08:10:13 266
原创 python-opencv Tutorials 一码人翻译(33)---- 特征检测和描述---了解特征
目标在这一章中,我们将试着理解什么是特征,为什么它们很重要,为什么角落是重要的等等。解释你们大多数人会玩拼图游戏。你会得到很多小的图像,你需要正确地组装它们来形成一个大的真实图像。问题是,你是怎么做到的?把同样的理论投射到计算机程序中,让计算机可以玩拼图游戏呢?如果电脑能玩拼图游戏,为什么我们不能给电脑提供大量真实的自然风景图片,并告诉它把所有的图像都拼接成一个大的图像呢?如果计算机能...
2018-08-15 18:37:12 237
原创 python-opencv Tutorials 一码人翻译(30)图像处理---- --抠图
import numpy as npimport cv2 as cvfrom matplotlib import pyplot as pltimg = cv.imread('tangwei.jpg')mask = np.zeros(img.shape[:2],np.uint8)bgdModel = np.zeros((1,65),np.float64)fgdModel = n...
2018-08-15 18:19:39 578
原创 python-opencv Tutorials 一码人翻译(32)图像处理---- --分水岭
目标在这一章,我们将学习使用分水岭算法来使用基于标记的图像分割我们将会看到:cv.watershed()理论任何灰度图像都可以被看作是一个地形面,高强度表示山峰和山丘,而低强度则表示山谷。你开始用不同颜色的水(标签)填充每个孤立的山谷(局部最小值)。随着水的上升,取决于附近的山峰(梯度),来自不同山谷的水,显然有不同的颜色会开始融合。为了避免这种情况,你在水合并的地方设置障碍。...
2018-08-15 18:00:35 317 1
原创 python-opencv Tutorials 一码人翻译(29)图像处理---- --霍夫圆检测
目标在这一章,我们将学习使用Hough变换在图像中找到圆。我们将看到这些功能:cv.hough圆圈()import numpy as npimport cv2 as cvimg = cv.imread('th.jpg',0)img = cv.medianBlur(img,5)cimg = cv.cvtColor(img,cv.COLOR_GRAY2BGR)circl...
2018-08-15 17:39:46 460 1
原创 python-opencv Tutorials 一码人翻译(31)图像处理---- --霍夫直线检测
霍夫变换在OpenCV上面解释的所有内容都封装在OpenCV函数中,cv.HoughLines()。它只是返回一个数组:math:(rho,theta)的值。ρ是以像素为单位的θ以弧度。第一个参数,输入图像应该是一个二进制图像,所以在应用hough变换之前应用阈值或使用精明的边缘检测。第二和第三个参数ρ分别精度。第四个参数是阈值,这意味着它应该被认为是一条直线。记住,投票的数量取决于直线上...
2018-08-15 17:29:10 372
原创 python-opencv Tutorials 一码人翻译(28)图像处理---- --模板匹配
目标在这一章中,你将学习使用模板匹配来查找图像中的对象您将看到这些功能:cv.matchTemplate()、cv.minMaxLoc()理论模板匹配是一种在较大的图像中搜索和查找模板图像位置的方法。OpenCV有一个函数cv.matchTemplate()来实现这个目的。它只是将模板图像滑过输入图像(就像在2D卷积中一样),并比较模板图像下的输入图像的模板和补丁。在OpenC...
2018-08-15 17:10:44 480
原创 python-opencv Tutorials 一码人翻译(27)图像处理---- --傅里叶变换
目标本小节我们将要学习: • 使用 OpenCV 对图像进行傅里叶变换 • 使用 Numpy 中 FFT(快速傅里叶变换)函数 • 傅里叶变换的一些用处 • 我们将要学习的函数有:cv2.dft(),cv2.idft() 等原理 傅里叶变换经常被用来分析不同滤波器的频率特性。我们可以使用 2D 离散傅里叶变换 (DFT) 分析图像的频域特性。实现 DFT 的一个快速算法被称为...
2018-08-15 16:46:16 316
原创 python-opencv Tutorials 一码人翻译(26)图像处理---- --直方图----直方图投影
目标在这一章中,我们将学习直方图反投影。理论这是由Michael j.Swain,Dana h.巴拉德在他们的论文索引中通过颜色直方图提出的。用简单的话来说是什么?它用于图像分割或在图像中寻找感兴趣的对象。简而言之,它创建的图像大小与我们的输入图像一样大小(但单个通道),其中每个像素对应于属于我们对象的那个像素的概率。在更简单的世界中,与剩余部分相比,输出图像将使我们感兴趣的对象更...
2018-08-11 14:33:32 510
原创 python-opencv Tutorials 一码人翻译(25)图像处理---- --直方图----2d直方图
目标在这一章中,我们将学习寻找和绘制2D直方图。它将在接下来的章节中有所帮助。介绍在第一篇文章中,我们计算并绘制了一维的直方图。它被称为一维的,因为我们只考虑了一个特性,即像素的灰度强度值。但在二维直方图中,你考虑两个特征。通常,它用于寻找颜色直方图,其中两个特征是每个像素的色相和饱和度值。已经有一个python样本(sampl/python/color直方图.py)已经用于寻找颜...
2018-08-10 22:45:18 446
原创 python-opencv Tutorials 一码人翻译(24)图像处理---- --直方图---- 直方图均衡化
目标在本节中,我们将学习直方图均衡的概念,并使用它来改善图像的对比度。理论考虑一个图像,其像素值仅局限于某些特定的值范围。对于eg来说,更亮的图像会将所有像素都限制在高值中。但是一个好的图像会有来自图像的所有区域的像素。因此,你需要将这个直方图拉伸到两端(如下图所示,从维基百科中给出),这就是直方图均衡所做的(用简单的词)。这通常会改善图像的对比度。我建议你阅读维基百科上关...
2018-08-10 17:16:09 319
原创 python-opencv Tutorials 一码人翻译(23)图像处理---- --直方图----绘制直方图
目标学会使用OpenCV和Numpy函数来查找直方图图柱直方图,使用OpenCV和Matplotlib函数您将看到这些功能:cv.calcHist()、np.histogram() 等。理论那么什么是直方图呢?你可以把直方图看作是一个图形或图,它能让你对图像的强度分布有一个总体的概念。它是一个带有像素值的图(从0到255,不总是)在x轴上,在y轴上的图像中对应的像素数量。...
2018-08-10 14:53:02 235
原创 python-opencv Tutorials 一码人翻译(22)图像处理----轮廓检测------轮廓层次结构
目标这一次,我们学习了轮廓的层次结构,即父-子关系的轮廓。理论在前几篇关于等高线的文章中,我们已经研究了OpenCV提供的一些与等高线相关的函数。但是当我们使用cv.findContours()函数找到图像的轮廓时,我们已经传递了一个参数,轮廓检索模式。我们通常通过简历。cv.RETR_LIST , cv.RETR_TREE 和它工作得很好。但这到底意味着什么呢?同样,在输出中,我...
2018-08-09 15:17:41 292
原创 python-opencv Tutorials 一码人翻译(21)图像处理----轮廓检测 --缺陷检测和图形匹配
目标在这一章中,我们将学习凸性缺陷及如何找到它们。从一个点到一个多边形的最短距离匹配不同的形状理论和代码1。凸性缺陷我们在第二章中看到了凸壳的轮廓。物体与该船体的任何偏差都可以被认为是凸性缺陷。OpenCV有一个现成的函数来找到这个,cv.convexityDefects().。一个基本的函数调用如下所示:import cv2 as cvimport num...
2018-08-09 14:57:31 2227
原创 python-opencv Tutorials 一码人翻译(20)图像处理----轮廓检测 --轮廓属性
在这里,我们将学习如何提取一些常用的物体,如固体、等效直径、掩模图像、平均强度等。在Matlab的区域道具文档中可以找到更多的特性。(NB:中心、区域、周长等也属于这一类,但我们在上一章已经看到了)1。纵横比它是物体的边界矩形的宽度和高度的比值。x,y,w,h = cv.boundingRect(cnt)aspect_ratio = float(w)/h2。程度上范围是...
2018-08-08 14:20:38 229
原创 python-opencv Tutorials 一码人翻译(19)图像处理----轮廓检测 --轮廓特征
目标在这篇文章中,我们将学习要找到轮廓的不同特征,比如面积,周长,质心,边界框等等您将看到许多与等高线相关的函数。1距图像时刻帮助你计算一些特征比如物体的重心,物体的面积等等。在图像时刻查看维基百科页面函数cv.moments()给出了计算的所有力矩值的字典。见下文:import numpy as npimport cv2 as cvimg = cv.imrea...
2018-08-08 14:00:09 332
原创 python-opencv Tutorials 一码人翻译(18)图像处理----轮廓检测 --轮廓:开始
目标理解什么是轮廓。学习寻找轮廓,绘制轮廓等等您将看到这些函数:cv.findContours(), cv.drawContours()轮廓是什么?轮廓可以简单地解释为一条连接所有连续点(沿边界)的曲线,具有相同的颜色或强度。轮廓是形状分析和对象检测和识别的有用工具。为了更好的准确性,使用二进制图像。因此,在找到轮廓之前,应用阈值或精明的边缘检测。自从opencv3.2...
2018-08-05 14:22:02 246
原创 python-opencv Tutorials 一码人翻译(16)图像处理----Canny边缘检测
目标在这一章中,我们将学习精明边缘检测概念OpenCV的功能:cv.Canny()OpenCV将以上所有的功能都放在一个单独的函数中,cv.Canny()。我们将会看到如何使用它。第一个参数是我们的输入图像。第二和第三个参数分别是我们的minVal和maxVal。第三个参数是aperture_size。它是用于寻找图像渐变的Sobel内核的大小。默认情况下是3。最后一个参数是l2梯...
2018-08-02 07:58:33 157
原创 python-opencv Tutorials 一码人翻译(15)图像处理----图像梯度
目标在这一章中,我们将学习:找到图像梯度,边缘等我们将看到以下功能:cv.Sobel()、cv.Scharr()、cv.Laplacian()等理论OpenCV提供三种类型的梯度过滤器或高通滤波器,Sobel,Scharr和Laplacian。我们将会看到他们中的每一个。1。Sobel和Scharr衍生品Sobel操作符是一个联合高斯-平滑加微分运算,所以它对噪声更有抵...
2018-08-02 07:46:58 172
原创 python-opencv Tutorials 一码人翻译(14)图像处理----形态转换
目标在这一章,我们将学习不同的形态操作,如侵蚀、扩张、打开、关闭等。我们将看到不同的功能,如 cv.erode(), cv.dilate(), cv.morphologyEx()等。理论形态转换是基于图像形状的一些简单操作。它通常是在二进制图像上执行的。它需要两个输入,一个是我们的原始图像,第二个是构造元素或内核,它决定了操作的性质。两种基本的形态运算符是侵蚀和扩张。然后它的变...
2018-08-01 18:29:08 240
原创 python-opencv Tutorials 一码人翻译(13)图像处理— 平滑图像
目标学习:用各种低通滤波器模糊图像将定制的过滤器应用于图像(2D卷积)2D卷积(图像滤波) 在一维信号中,图像也可以通过各种低通滤波器(LPF)、高通滤波器(HPF)等来过滤,LPF有助于消除噪声,模糊图像等。HPF过滤器有助于在图像中寻找边缘。 OpenCV提供了一个函数cv.filter2D()来将一个内核与一个图像进行卷积。作为一个例子,我们将在一个图像上尝试一...
2018-08-01 17:44:37 179
原创 python-opencv Tutorials 一码人翻译(12)图像处理— 图像阈值
目标在本教程中,您将学习简单的阈值、自适应阈值、Otsu的阈值等。你将学习这些功能: cv.threshold, cv.adaptiveThreshold 等等。简单的阈值 在这里,事情是直截了当的。如果像素值大于阈值,那么它就被赋值一个值(可能是白色),否则它会被赋值另一个值(可能是黑色)。所使用的函数是cv.threshold.。第一个参数是源图像,它应该是一个灰度图...
2018-08-01 17:12:47 213
原创 python-opencv Tutorials 一码人翻译(10)图片处理 颜色转换和图像追踪
目标 在本教程中,您将学习如何将图像从一个颜色空间转换为另一个颜色空间,如BGR↔灰色,BGR↔HSV等等。除此之外,我们还会创建一个应用程序在视频中提取一个彩色的对象您将学习以下功能:cv.cvtColor()、cv.inRange()等。改变颜色空间 OpenCV有超过150种颜色空间转换方法。但是我们只会研究两个最广泛使用的,BGR↔灰色和BGR↔HSV。对于颜色...
2018-08-01 09:43:26 195
原创 python-opencv Tutorials 一码人翻译(9)核心操作 性能测试
目标在图像处理过程中,由于您每秒处理大量的操作,所以您的代码不仅提供了正确的解决方案,而且还以最快的方式提供了。在这一章中,你们将学习来测量代码的性能。一些提高代码性能的技巧。你会看到这些函数:cv.getTickCount, cv.getTickFrequency等等。除了OpenCV之外,Python还提供了一个模块时间,这有助于度量执行的时间。另一个模块概要文件有助于获得关...
2018-07-31 21:49:28 462
原创 python-opencv Tutorials 一码人翻译(8)核心操作 对图像算术运算
目标学习一些关于加法、减法、位运算等图像的算术运算。您将学习这些功能:cv.add()、cv.add加权()等。图片添加您可以通过OpenCV函数、cv.add()或简单的numpy操作来添加两个图像,res=img1+img2。这两个图像应该具有相同的深度和类型,或者第二个图像可以是一个标量值。请注意OpenCV添加和Numpy添加之间是有区别的。OpenCV添加是一个饱和的...
2018-07-31 21:23:40 213
原创 python-opencv Tutorials 一码人翻译(7)核心操作 基本的图片操作
目标学习:访问像素值并修改它们访问图像属性设定兴趣区域(ROI)分裂和合并图片本节几乎所有的操作都与Numpy而不是OpenCV有关。对Numpy有很好的了解,需要使用OpenCV编写更好的优化代码。(示例将在Python终端中显示,因为它们中的大多数都只是单行代码)访问和修改像素值让我们先加载一个颜色图像:import numpy as npimport...
2018-07-31 11:26:57 197
原创 python-opencv Tutorials 一码人翻译(6)GUI特性—— 调色板
代码演示在这里,我们将创建一个简单的应用程序,它显示您所指定的颜色。你有一个窗口,它显示了颜色和三条轨迹条来指定每一个B,G,R颜色。你滑动轨迹栏,相应的窗口颜色变化。默认情况下,初始颜色将被设置为黑色。对于cv.getTrackbarPos()函数,第一个参数是trackbar名称,第二个参数是附着的窗口名,第三个参数是默认值,第四个是最大值,第五个是回调函数,每次trackbar值发生变...
2018-07-26 22:50:34 240
原创 原 python-opencv Tutorials 一码人翻译(5)GUI特性—— 在OpenCV中处理鼠标事件
目标学习在OpenCV中处理鼠标事件您将学习这些函数:cv.setMouseCallback()简单的演示在这里,我们创建了一个简单的应用程序,它可以在我们双击它的任何地方画一个圆。 首先,我们创建一个鼠标回调函数,当鼠标事件发生时,它将被执行。鼠标事件可以是任何与鼠标相关的东西,比如左键、左键、左键双击等等。它为每个鼠标事件提供了坐标(x,y)。有了这个事件和地点,我们可以做...
2018-07-26 12:13:06 221
原创 python-opencv Tutorials 一码人翻译(4)GUI特性—— 在OpenCV绘图函数(直线圆椭圆多边形长方形插入字符)
目标学习用OpenCV画出不同的几何图形将学习这些功能:cv.line(), cv.circle() , cv.rectangle(), cv.ellipse(), cv.putText() etc.等。代码在上述所有功能中,您将看到如下所示的一些常见参数:img:你想要绘制图形的图像颜色:形状的颜色。对于BGR,将它作为一个元组传递,例如:(255,0,0)为蓝色。对于灰度级...
2018-07-26 11:43:42 254
原创 python-opencv Tutorials 一码人翻译(3)GUI特性——读取视频,显示视频,保存视频
目标 学习阅读视频,显示视频和保存视频。学会从相机中捕捉并显示它。您将学习这些功能:cv.VideoCapture()、cv.VideoWriter() 从摄像机捕获视频通常,我们必须用相机捕捉实时流。OpenCV提供了一个非常简单的接口。让我们从相机中捕捉一个视频(我正在使用我的笔记本电脑内置的摄像头),把它转换成灰度视频并显示出来。这只是一个简单的任务。要捕捉视频,你需...
2018-07-26 08:58:36 200
原创 python-opencv Tutorials 一码人学习笔记(1)介绍
OpenCVOpenCV于1999年由加里布拉德斯基在英特尔公司创立,第一个版本于2000年发布。瓦迪姆皮萨列夫斯基加入了加里布拉德斯基,负责管理英特尔的俄罗斯软件OpenCV团队。2005年,OpenCV被用于斯坦利,这是2005年DARPA大挑战赛的冠军。后来,在Willow Garage公司的支持下,该公司的积极发展仍在继续,加里布拉德斯基和瓦迪姆皮萨列夫斯基领导了这个项目。OpenCV...
2018-07-25 15:21:32 428
原创 python3 100例 一码人学习笔记(91-100)
题目91:时间函数举例1。if __name__ == '__main__': import time print(time.ctime(time.time())) print(time.asctime(time.localtime(time.time()))) print(time.asctime(time.gmtime(time.time())))M...
2018-07-24 23:37:43 941
原创 python3 100例 一码人学习笔记(81-90)
题目81:809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*?? a = 809for i in range(10,100): b = i * a if b >= 1000 and b <= 10000 and 8 * i < 100 and 9...
2018-07-24 19:46:25 620
原创 python3 100例 一码人学习笔记(71-80)
题目71:编写input()和output()函数输入,输出5个学生的数据记录。N = 3#stu# num : string# name : string# score[4]: liststudent = []for i in range(5): student.append(['','',[]]) def input_stu(stu): for i in ...
2018-07-24 14:42:54 838
原创 python3 100例 一码人学习笔记(61-70)
题目66:输入3个数a,b,c,按大小顺序输出。 if __name__ == '__main__': n1 = int(input('n1 = :\n')) n2 = int(input('n2 = :\n')) n3 = int(input('n3 = :\n')) def swap(p1,p2): return p2,p1 ...
2018-07-24 13:27:24 357
原创 python3 100例 一码人学习笔记(51-60)
题目51:学习使用按位与 & 。if __name__ == '__main__': a = 1 b = 3 c=a&b print ('a & b = %d' % c) b &= 0 print ('a & b = %d' % b)a & b = 1a & b = 0Pres...
2018-07-23 16:54:34 840
原创 python3 100例 一码人学习笔记(41-50)
题目41:模仿静态变量的用法。 def varfunc(): var = 0 print ('var = %d' % var) var += 1if __name__ == '__main__': for i in range(3): varfunc()# 类的属性# 作为类的一个属性吧class Static: Static...
2018-07-23 15:58:32 457
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人