![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器视觉
机器视觉
奋进的大脑袋
Alan Wang,算法工程师 热爱人工智能技术,熟悉无人驾驶决策和路径规划及激光雷达算法设计
展开
-
机器视觉之背景扣除
请注意,这个示例使用了摄像头捕获实时视频,但你也可以将其应用于存储的图像或视频文件。OpenCV提供了许多用于背景扣除的函数和方法,其中最常用的是基于高斯混合模型(Gaussian Mixture Model,GMM)的背景扣除方法。这个示例演示了一些常见的图像操作,包括读取、保存、亮度对比度调整、裁剪、旋转和文本绘制。该扣除器将每一帧图像与背景进行比较,将前景对象从背景中提取出来,并生成一个前景掩码。背景扣除是一种用于从图像或视频中提取前景对象的技术,通常用于物体跟踪、图像分割和虚拟背景等应用中。原创 2023-08-21 16:29:41 · 221 阅读 · 0 评论 -
机器视觉之SVM
支持向量机(Support Vector Machine,简称SVM)是一种常用的监督学习算法,主要用于分类和回归问题。在这里,我将提供一个使用OpenCV和C++编写的简单SVM分类器的示例程序。这个示例将演示如何使用SVM对二维数据进行二元分类。编译和运行这个程序。它将读取训练数据,使用SVM分类器进行训练,然后对新的测试数据进行分类预测。请确保你已经安装了OpenCV,并且已经安装了CMake(用于构建程序)。:包含训练数据,每一行包含两个特征和一个类别标签(0或1)。:SVM示例程序的源代码。原创 2023-08-22 11:33:33 · 111 阅读 · 0 评论 -
OpenCV中常用的函数
这只是OpenCV中的一小部分函数和模块。OpenCV提供了许多其他功能和算法,用于各种图像处理和计算机视觉任务。可以在OpenCV的官方文档中找到更详细的信息和示例。OpenCV是一个功能强大的计算机视觉库,提供了众多用于图像处理、计算机视觉和机器学习的函数和模块。原创 2023-08-22 11:30:31 · 1916 阅读 · 0 评论 -
计算机视觉领域中常用的深度学习框架和方法
随着深度学习领域的不断发展,还涌现了许多新的方法和框架,以解决不同领域的计算机视觉问题。:一个高级深度学习API,可以运行在TensorFlow、Theano等后端上,使模型的构建和训练变得更加简单。:使用预训练的深度学习模型来解决特定任务,如迁移学习的各种方法和预训练模型(如BERT、GPT等)。:由Facebook开发,用于构建和部署深度学习模型,尤其在移动设备和嵌入式系统上表现出色。:适用于卷积神经网络的深度学习框架,被广泛用于图像分类、目标检测和分割等任务。原创 2023-08-22 11:33:51 · 406 阅读 · 0 评论 -
机器视觉之HDR
创建一个完整的HDR(High Dynamic Range)图像处理程序需要许多步骤和复杂的数学计算,但我可以为你提供一个简单的示例程序,演示如何合成两个具有不同曝光的图像以生成HDR图像。请注意,实际的HDR图像处理通常需要更多的图像校正、色彩映射和渲染步骤,以生成最终的HDR图像。这些图像被称为曝光值不同的图像(通常是低曝光、标准曝光和高曝光图像),然后通过合成算法将它们组合在一起,以获得广泛的亮度范围。在实际应用中,通常需要使用多个曝光不同的图像,并进行更多的图像处理步骤,以生成高质量的HDR图像。原创 2023-08-22 11:33:07 · 215 阅读 · 0 评论 -
OpenCV最常用的50个函数
Python版:OpenCV提供了众多图像处理算子和函数,涵盖了各种任务和技术。原创 2023-08-23 10:15:08 · 1444 阅读 · 0 评论 -
机器视觉之SFM
在这里,我将提供一个简单的Python示例,演示如何使用OpenCV中的SfM模块进行SfM处理。然后,我们使用FLANN匹配器对两个图像的特征进行匹配,通过Lowe’s比率测试筛选出好的匹配。接下来,我们使用基础矩阵估计相机运动,然后使用基础矩阵和匹配点恢复三维点云。请注意,这只是一个SfM示例的基本框架,实际的SfM系统可能需要更多的图像,以及更复杂的特征匹配和三维点云恢复方法。此外,一些SfM库,如OpenMVG和COLMAP,提供了更全面的SfM功能和工具。首先,确保你已经安装了OpenCV库。原创 2023-08-22 11:34:36 · 287 阅读 · 0 评论 -
机器视觉之PCA
它的主要目标是找到数据中的主要特征,以减少数据的维度,同时保留尽可能多的信息。下面是一个使用OpenCV和C++编写的简单PCA(主成分分析)的例程,它演示了如何进行PCA降维并可视化结果。在实际应用中,PCA通常是一种非常有用的工具,但它也有一些限制,例如无法处理非线性关系的数据。特征值表示了数据中的方差,而特征向量是协方差矩阵的特征方向。:首先,对数据进行均值归一化,即将每个特征的平均值减去该特征的均值。这样做可以使数据的均值为零。:将高维数据降维到较低的维度,减少存储和计算开销,并减少过拟合的风险。原创 2023-08-22 11:32:44 · 98 阅读 · 0 评论 -
OpenCV常用的算子
(Gaussian Filter):用于平滑图像,与均值滤波类似,但它对周围像素的权重不同,更接近中心像素的权重较大。(Median Filter):用于去除图像中的椒盐噪声,它将每个像素的值替换为其周围像素值的中位数。:使用Canny算法检测图像中的边缘,具有多步骤的过程,包括高斯平滑、梯度计算和非极大值抑制。:尺度不变特征变换,用于检测图像中的关键点和描述符,对于物体识别和匹配非常有用。:用于检测图像中的边缘,分为水平和垂直Sobel算子,常用于边缘检测。:用于增强图像的高频部分,可用于边缘检测。原创 2023-08-23 10:15:50 · 336 阅读 · 0 评论 -
机器视觉之级联分类器
级联分类器(Cascade Classifier)是一种机器学习技术,通常用于目标检测,特别是人脸检测。最著名的级联分类器之一是Haar级联分类器,它是通过AdaBoost训练得到的强分类器,可以高效地检测目标对象,如人脸,车辆等。OpenCV提供了许多不同类型的级联分类器文件,可用于检测不同类型的对象。OpenCV提供了一个用于级联分类器的库,其中包括Haar级联分类器和其他类型的级联分类器。这只是一个人脸检测的简单示例,级联分类器也可以用于检测其他类型的对象。检测到的人脸将以矩形的形式绘制在原始帧上。原创 2023-08-22 11:34:10 · 424 阅读 · 0 评论 -
机器视觉之LogPolar
其中,(I(x, y)) 是原始图像上的像素值,((x, y)) 是笛卡尔坐标系中的坐标,((r, \theta)) 是Log-Polar坐标系中的坐标。通过这个变换,图像中的像素点被映射到Log-Polar坐标系中的点。Log-Polar变换是一种用于图像处理和计算机视觉中的变换技术,它将图像从笛卡尔坐标系转换为极坐标系。这个变换的主要优点是对于图像中的缩放、旋转和平移具有不变性,因此在一些应用中很有用,比如目标跟踪和图像匹配。函数的参数包括中心点坐标、输出图像的大小和插值方法。在上述示例中,我们使用。原创 2023-08-23 10:15:31 · 200 阅读 · 0 评论 -
机器视觉之三维重建
SFM(Structure from Motion)是一种计算机视觉和计算机图形学领域的技术,用于从一系列图像中恢复出三维场景的结构和相机运动信息。SFM通常用于创建三维模型、场景重建、导航、姿态估计等应用。SFM是一个复杂的领域,具体的算法和实现可以因应用场景和需求而异。同时,现代的SFM系统通常会结合SLAM(Simultaneous Localization and Mapping)技术,以实时地估计相机位置并构建地图。原创 2023-08-23 10:16:19 · 404 阅读 · 0 评论 -
机器视觉之canny
请确保你已经安装了OpenCV,并将示例中的’image.jpg’替换为你自己的图像文件路径。这个示例演示了如何使用OpenCV进行基本的Canny边缘检测。Canny边缘检测是一种经典的图像处理技术,用于检测图像中的边缘和轮廓。在OpenCV中,你可以很容易地使用Canny函数执行这个操作。函数执行Canny边缘检测,传入输入图像、低阈值和高阈值作为参数。根据图像的不同特性,你可能需要调整阈值来获得最佳的边缘检测结果。函数显示原始图像和Canny边缘图像,并等待按下任意键后关闭窗口。原创 2023-08-22 11:34:54 · 78 阅读 · 0 评论 -
机器视觉之角点
它提供了许多功能,包括角点检测,用于在图像中找到角点(如角、交叉点等)。:选择适当的角点检测方法。OpenCV提供了多种方法,包括Harris角点检测、Shi-Tomasi角点检测、FAST角点检测等。这只是一个基本的角点检测示例,OpenCV还提供了许多其他参数和方法,以满足不同场景的需求。可以根据具体的应用和需求选择适当的角点检测方法和参数。:你可以将检测到的角点绘制在原始图像上以进行可视化。:使用OpenCV读取你要进行角点检测的图像。这将在图像上绘制红色的圆圈来表示检测到的角点。原创 2023-08-21 16:40:22 · 82 阅读 · 0 评论 -
机器视觉之光流
根据这个假设,光流算法试图找到一个场(或向量场),该场中的每个向量表示图像中每个像素的运动方向和速度。光流可以用来跟踪图像中物体的运动,检测运动中的物体,或者在机器视觉任务中估计物体的速度和位移。:一旦检测到特征点,就可以计算它们的光流。有几种不同的计算光流的方法,包括基于亮度的方法和基于特征匹配的方法。:通常,你可以将计算出的光流可视化,以便观察物体的运动模式。:它假设一个小的窗口内的像素具有相似的运动,然后通过最小化误差来估计局部运动。:稠密光流计算图像中每个像素的光流,而稀疏光流只计算特定的特征点。原创 2023-08-22 11:31:53 · 221 阅读 · 0 评论 -
机器视觉之反向投影(Back Projection)
反向投影(Back Projection)是一种图像处理技术,通常用于目标跟踪、图像分割和对象检测等应用中。它的基本思想是将一个模板或感兴趣的区域在图像中的像素映射回到一个空间中,以便在该空间中查找目标对象。反向投影通常与直方图投影结合使用。在这个示例中,我们首先将图像转换为HSV颜色空间,然后定义了一个颜色范围(在这里是蓝色)。接下来,我们创建一个掩码,其中目标颜色范围内的像素设置为白色,其他像素设置为黑色。反向投影通常用于目标跟踪,其中可以使用反向投影来确定图像中目标的位置,并在后续帧中跟踪目标。原创 2023-08-21 16:27:57 · 490 阅读 · 0 评论 -
机器视觉之仿射变换
仿射变换(Affine Transformation)是一种在二维平面上对图像进行线性变换的方法,它保持了图像中的平行线在变换前后仍然是平行的,并且保持了原始图像中的直线仍然是直线。仿射变换可以用于图像的平移、旋转、缩放和倾斜等操作。首先,我们定义一个仿射变换矩阵,然后将其用于图像上的平移、旋转和缩放操作。在示例中,我们进行了三种不同的仿射变换,但可以根据需要进行其他类型的变换。在实际应用中,仿射变换可用于图像配准、校正、裁剪和图像变换等任务。根据所需的操作,可以调整仿射变换矩阵中的参数。原创 2023-08-21 16:25:52 · 187 阅读 · 0 评论 -
机器视觉之直方图
直方图是一种用于可视化图像中像素值分布的图形工具,通常用于图像分析、增强和处理中。直方图显示了图像中每个像素值的频率,可以帮助我们了解图像的对比度、亮度和颜色分布等信息。可以根据需要自定义直方图的参数,例如颜色通道(对于彩色图像)、直方图的范围和bin数量等。这个示例适用于灰度图像,如果处理的是彩色图像,可以考虑在计算直方图时指定通道。接下来,我们创建了一个黑色背景的图像来绘制直方图,并归一化直方图数据以适应图像尺寸。在这个示例中,我们首先读取了一张灰度图像,然后使用。来计算图像的直方图,并使用。原创 2023-08-22 11:31:13 · 146 阅读 · 0 评论 -
计算机视觉之图像特征提取
图像特征提取是计算机视觉中的重要任务,它有助于识别、分类、检测和跟踪对象。原创 2023-08-21 16:03:36 · 1924 阅读 · 0 评论 -
OpenCV 对轮廓进行多边形逼近(Polygon Approximation)
是一个函数,用于对轮廓进行多边形逼近(Polygon Approximation)。它可以将复杂的轮廓逼近为简化的多边形,从而减少轮廓的数据点,使轮廓更加紧凑。在上述示例中,我们首先读取图像并转换为灰度图像,然后进行二值化处理,找到图像中的轮廓。Python 版本的代码与 C++ 版本的代码相比,在函数调用时稍有不同,但整体逻辑是相同的。对每个轮廓进行多边形逼近,并绘制原始轮廓(红色)和多边形逼近(绿色)的结果。函数将原始轮廓和多边形逼近结果绘制在图像上,并显示结果。函数找到图像中的轮廓,然后通过。原创 2023-07-26 16:54:24 · 2245 阅读 · 2 评论 -
机器视觉之平面物体检测
平面物体检测是计算机视觉中的一个重要任务,它通常涉及检测和识别在图像或视频中出现的平面物体,如纸张、标志、屏幕、牌子等。原创 2023-08-21 16:06:36 · 657 阅读 · 0 评论 -
机器视觉之特征匹配
特征匹配是计算机视觉中的一个重要任务,它用于寻找两幅或多幅图像中相对应的特征点,从而识别、跟踪或配准对象。示例演示了如何使用SIFT特征检测器检测图像中的关键点并计算描述子,然后使用FLANN匹配器在两幅图像之间找到相应的特征点,并通过。特征匹配是一个广泛应用的技术,可以用于目标识别、图像配准、拼接和跟踪等各种计算机视觉任务。原创 2023-08-21 16:05:25 · 929 阅读 · 0 评论 -
OpenCV学习笔记
大纲。原创 2023-08-21 15:09:08 · 38 阅读 · 0 评论 -
SFM(Structure from Motion)和NeRF(Neural Radiance Fields)
它通过分析相机在不同视角下捕获的图像来推断场景的三维结构和摄像机的运动。NeRF是一种基于神经网络的算法,用于从图像中重建逼真的三维场景模型。它通过训练一个神经网络来建模每个空间点的颜色和密度,然后可以使用这个模型生成新的视图和逼真的渲染效果。NeRF的目标是捕获场景的精细细节和光照效果,使重建的三维模型更加真实。SFM(Structure from Motion)和NeRF(Neural Radiance Fields)都是计算机视觉领域中的重要算法,用于不同的任务和应用。原创 2023-08-09 18:44:22 · 1354 阅读 · 0 评论