-
【python-opencv】读取、显示、保存视频
所属栏目:[Python] 日期:2020-12-20 热度:137
1、从相机中读取视频 要捕获视频,你需要创建一个 ? VideoCapture ?对象。它的参数可以是设备索引或视频文件的名称。设备索引就是指定哪个摄像头的数字。正常情况下,一个摄像头会被连接(就像我的情况一样)。所以我简单地传0(或-1)。你可以通过传递1来选择第[详细]
-
【python-opencv】鼠标作为画笔
所属栏目:[Python] 日期:2020-12-20 热度:64
首先,我们创建一个鼠标回调函数,该函数在发生鼠标事件时执行。鼠标事件可以是与鼠标相关的任何事物,例如左键按下,左键按下,左键双击等。它为我们提供了每个鼠标事件的坐标(x,y)。通过此活动和地点,我们可以做任何我们喜欢的事情。要列出所有可用的可[详细]
-
【python-opencv】读取、显示、写入图像
所属栏目:[Python] 日期:2020-12-20 热度:127
1、读取图像 import cv2image =cv2.imread( " dog2.jpg " ,1) 说明: 第二个参数是一个标志,它指定了读取图像的方式。 cv.IMREAD_COLOR: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。 cv.IMREAD_GRAYSCALE:以灰度模式加载图像 cv.IMREAD_UN[详细]
-
【python-opencv】轨迹栏作为调色板
所属栏目:[Python] 日期:2020-12-20 热度:163
在这里,我们将创建一个简单的应用程序,以显示您指定的颜色。您有一个显示颜色的窗口,以及三个用于指定B、G、R颜色的跟踪栏。滑动轨迹栏,并相应地更改窗口颜色。默认情况下,初始颜色将设置为黑色。 对于 cv.getTrackbarPos() 函数,第一个参数是轨迹栏名[详细]
-
【python-opencv】性能衡量和提升技术
所属栏目:[Python] 日期:2020-12-20 热度:81
在图像处理中,由于每秒要处理大量操作,因此必须使代码不仅提供正确的解决方案,而且还必须以最快的方式提供。因此,在本章中,你将学习 衡量代码的性能。 一些提高代码性能的技巧。 你将看到以下功能: cv.getTickCount , cv.getTickFrequency 等。 除了O[详细]
-
【python opencv】直方图反投影
所属栏目:[Python] 日期:2020-12-20 热度:130
这是由 Michael J. Swain 和 Dana H. Ballard 在他们的论文《 通过颜色直方图索引 》中提出的。 用简单的话说是什么意思 ?它用于图像分割或在图像中查找感兴趣的对象。简而言之,它创建的图像大小与输入图像相同(但只有一个通道),其中每个像素对应于该像[详细]
-
【python-opencv】图像金字塔
所属栏目:[Python] 日期:2020-12-20 热度:73
通常,我们过去使用的是恒定大小的图像。但是在某些情况下,我们需要使用不同分辨率的(相同)图像。例如,当在图像中搜索某些东西(例如人脸)时,我们不确定对象将以多大的尺寸显示在图像中。在这种情况下,我们将需要创建一组具有不同分辨率的相同图像,[详细]
-
【python-opencv】图像阈值
所属栏目:[Python] 日期:2020-12-20 热度:124
1、简单阈值 在这里,问题直截了当。对于每个像素,应用相同的阈值。如果像素值小于阈值,则将其设置为0,否则将其设置为最大值。函数 cv.threshold 用于应用阈值。第一个参数是源图像,它 应该是灰度图像 。第二个参数是阈值,用于对像素值进行分类。第三个[详细]
-
【python opencv】直方图查找、绘制和分析
所属栏目:[Python] 日期:2020-12-20 热度:122
那么直方图是什么?您可以将直方图视为图形或绘图,从而可以总体了解图像的强度分布。它是在X轴上具有像素值(不总是从0到255的范围),在Y轴上具有图像中相应像素数的图。 这只是理解图像的另一种方式。通过查看图像的直方图,您可以直观地了解该图像的对比[详细]
-
【python-opencv】canny边缘检测
所属栏目:[Python] 日期:2020-12-20 热度:185
Canny Edge Detection是一种流行的边缘检测算法。它由John F. Canny发明,这是一个多阶段算法,我们将经历每个阶段。 1、降噪 由于边缘检测容易受到图像中噪声的影响,因此第一步是使用5x5高斯滤波器消除图像中的噪声。我们已经在前面的章节中看到了这一点。[详细]
-
有效地读取图像,对比opencv、PIL、turbojpeg、lmdb、tfrecords
所属栏目:[Python] 日期:2020-12-20 热度:82
opencv和PIL都是很常见的图像处理库了,就不介绍了,主要介绍后面三个: turbojpeg:libjpeg-turbo的python包装器,用于jpeg图像的解码和编码。 基本用法: import cv2 from turbojpeg TurboJPEG,TJPF_GRAY,TJSAMP_GRAY,TJFLAG_PROGRESSIVE # using default[详细]
-
【python opencv】直方图均衡
所属栏目:[Python] 日期:2020-12-20 热度:101
考虑这样一个图像,它的像素值仅局限于某个特定的值范围。例如,较亮的图像将把所有像素限制在高值上。但是一幅好的图像会有来自图像所有区域的像素。因此,您需要将这个直方图拉伸到两端(如下图所示,来自wikipedia),这就是直方图均衡化的作用(简单来说)。[详细]
-
【python opencv】傅里叶变换
所属栏目:[Python] 日期:2020-12-20 热度:97
理论 傅立叶变换用于分析各种滤波器的频率特性。对于图像,使用**2D离散傅里叶变换**(DFT)查找频域。一种称为**快速傅立叶变换**(FFT)的快速算法用于DFT的计算。关于这些的详细信息可以在任何图像处理或信号处理教科书中找到。请参阅其他资源部分。 对于正弦[详细]
-
【python-opencv】图像梯度
所属栏目:[Python] 日期:2020-12-20 热度:68
OpenCV提供三种类型的梯度滤波器或高通滤波器,即Sobel,Scharr和Laplacian。我们将看到他们每一种。 1、sobel和scharr算子 Sobel算子是高斯平滑加微分运算的联合运算,因此它更抗噪声。你可以指定要采用的导数方向,垂直或水平(分别通过参数yorder和xorder[详细]
-
【python opencv】轮廓特征
所属栏目:[Python] 日期:2020-12-20 热度:120
1、特征矩 特征矩可以帮助您计算一些特征,例如物体的质心,物体的面积等。 函数 cv.moments ()提供了所有计算出的矩值的字典: import numpy as np cv2 as cvimg = cv.imread( ' star.jpg ' ,0)ret,thresh = cv.threshold(img,127,255 = cv.findContours(th[详细]
-
【python opencv】轮廓更多属性
所属栏目:[Python] 日期:2020-12-20 热度:152
1. 凸性缺陷 我们看到了关于轮廓的第二章的凸包。从这个凸包上的任何偏差都可以被认为是凸性缺陷。 OpenCV有一个函数来找到这个, cv.convexityDefects ()。一个基本的函数调用如下: hull = cv.convexHull(cnt,returnPoints = False)defects = cv.convexityDe[详细]
-
【python opencv】霍夫变换
所属栏目:[Python] 日期:2020-12-20 热度:191
封装在OpenCV函数**cv.HoughLines**()中。它只是返回一个:math:(rho,theta)值的数组。ρ以像素为单位,θ以弧度为单位。第一个参数,输入图像应该是二进制图像,因此在应用霍夫变换之前,请应用阈值或使用Canny边缘检测。第二和第三参数分别是ρ和θ精度。[详细]
-
【python-opencv】转换颜色空间
所属栏目:[Python] 日期:2020-12-20 热度:184
1、改变颜色空间 OpenCV中有超过150种颜色空间转换方法。但是我们将研究只有两个最广泛使用的,BGR?灰色和BGR?HSV。 对于颜色转换,我们使用cv函数。cvtColor(input_image,flag),其中flag决定转换的类型。 对于BGR→灰度转换,我们使用标志cv.COLOR_BGR2GRAY[详细]
-
【python-opencv】图像几何变换
所属栏目:[Python] 日期:2020-12-20 热度:167
1、变换 OpenCV提供了两个转换函数 cv.warpAffine 和 cv.warpPerspective ,您可以使用它们进行各种转换。 cv.warpAffine 采用2x3转换矩阵,而 cv.warpPerspective 采用3x3转换矩阵作为输入。 import cv2 as cv from google.colab.patches cv2_imshowimage =[详细]
-
【python-opencv】轮廓基本绘制
所属栏目:[Python] 日期:2020-12-20 热度:118
什么是轮廓? 轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。 为了获得更高的准确性,请使用二进制图像。因此,在找到轮廓之前,请应用阈值或canny边缘检测。 从OpenCV 3.2开[详细]
-
【python-opencv】形态转换
所属栏目:[Python] 日期:2020-12-20 热度:92
形态变换是一些基于图像形状的简单操作。通常在二进制图像上执行。它需要两个输入,一个是我们的原始图像,第二个是决定 操作性质的结构元素 或 内核 。两种基本的形态学算子是侵蚀和膨胀。然后,它的变体形式(如“打开”,“关闭”,“渐变”等)也开始起[详细]
-
【python opencv】二维直方图
所属栏目:[Python] 日期:2020-12-20 热度:107
我们计算并绘制了一维直方图。 之所以称为一维,是因为我们仅考虑一个特征,即像素的灰度强度值。 但是在二维直方图中,您要考虑两个特征。 通常,它用于查找颜色直方图,其中两个特征是每个像素的色相和饱和度值。我们将尝试了解如何创建这种颜色直方图,这[详细]
-
【python opencv】轮廓属性
所属栏目:[Python] 日期:2020-12-20 热度:183
1. 长宽比 它是对象边界矩形的宽度与高度的比值。 $$ Aspect ; Ratio = frac{Width}{Height} $$ x,y,w,h = cv.boundingRect(cnt)aspect_ratio = float(w)/h 2. 范围 范围是轮廓区域与边界矩形区域的比值。 $$ Extent = frac{Object ; Area}{Bounding ;[详细]
-
【python-opencv】图像平滑
所属栏目:[Python] 日期:2020-12-20 热度:109
1、2D卷积 与一维信号一样,还可以使用各种低通滤波器(LPF),高通滤波器(HPF)等对图像进行滤波。LPF有助于消除噪声,使图像模糊等。HPF滤波器有助于在图像中找到边缘。 OpenCV提供了一个函数 cv.filter2D 来将内核与图像进行卷积。例如,我们将尝试对图[详细]
-
【python opencv】模板匹配
所属栏目:[Python] 日期:2020-12-20 热度:161
目标 在本章中,您将学习 - 使用模板匹配在图像中查找对象 - 你将看到以下功能: cv.matchTemplate (), cv.minMaxLoc () 理论 模板匹配是一种用于在较大图像中搜索和查找模板图像位置的方法。为此,OpenCV带有一个函数**cv.matchTemplate**()。 它只是将模[详细]
