OpenCV从入门到精通
文章平均质量分 81
OpenCV 在发展历程中,不仅受到了互联网行业泡沫经济的冲击,还受到了管理层和管理方向不断变更的影响,有时甚至没有研究人员和研究经费的投入。但是,随着近些年计算机视觉的应用越来越广泛,OpenCV已经在开源计算机视觉领域起到领军作用。
余额抵扣
助学金抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
坐望云起
专注人工智能、深度学习、机器学习、计算机视觉、图像处理等领域
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenCV学习笔记 比较基于RANSAC、最小二乘算法的拟合
RANSAC 与最小二乘拟合曲线的比较。(a) 和 (c) 中的红线显示使用 RANSAC 拟合到最小强度点的曲线。(b) 和 (d) 中的蓝线显示使用最小二乘法拟合到最小强度点的曲线,由于存在异常值,该方法会漏掉裂缝。就拿直线拟合这件事来讲,RANSAC对于异常点不敏感,而对于最小二乘算法,即使有一个离群点,也会被影响。就类似下面的图像所示。原创 2024-07-31 22:16:00 · 294 阅读 · 0 评论 -
机器学习笔记 - 使用 OpenCV 的结构化森林进行边缘检测
边缘检测是计算机视觉领域中一项非常重要的任务。这是许多纯计算机视觉任务(例如轮廓检测)的第一步。即使涉及深度学习,较深层也首先学习识别边缘,然后再学习图像的复杂特征。所以,我们可以说边缘检测在计算机视觉领域非常重要。拥有良好且高效的图像边缘检测算法同样重要。结构化森林进行边缘检测,也称为结构化边缘检测器。已经有许多有效的边缘检测器,例如Canny、Sobel 和 Laplacian 边缘检测器。他们为什么我们需要另一个结构化边缘检测器。这种检测器的主要特点是它能够快速且更好地预测局部掩模的边缘。原创 2024-04-18 22:18:35 · 1135 阅读 · 2 评论 -
Python学习笔记 - 如何在google Colab中显示图像?
这里是使用的opencv进行图片的读取,自然也是想使用opencv的imshow方法来显示图像,但是在google Colab中不可以使用,所以寻找了一下变通的显示方法。原创 2024-04-01 21:37:15 · 994 阅读 · 0 评论 -
数字图像处理 使用C#进行图像处理九 实现傅里叶变换
傅立叶变换将图像分解为其正弦和余弦分量。换句话说,它将图像从空间域变换到频率域。这个想法是任何函数都可以用无限正弦函数和余弦函数之和来精确近似。傅里叶变换是实现此目的的一种方法。网上有很多关于傅里叶变换的文章,这里就不进行赘述了,这里主要结合代码和公式,一步步实现图像从空域到频域的变换。原创 2024-03-13 15:50:04 · 907 阅读 · 0 评论 -
OpenCV学习笔记 使用OpenCV进行人脸交换
首先说换脸这件事情,已经可以算是有一丢丢古老的技术了,基于OpenCV进行人脸交换的好处在于简单,坏处在于无法复刻表情。如果想要比较完美的可以去找相关技术,如果想要对脸部进行一些自定义操作,那么了解OpenCV换脸涉及到的技术点还是有价值的。基于OpenCV进行人脸交换的步骤大致是面部标志检测、Delaunay 三角测量、面部变形和无缝克隆等过程。原创 2024-03-07 16:10:56 · 1230 阅读 · 1 评论 -
OpenCV每日函数 结构分析和形状描述符(9) ApproxPolyDP函数 拟合曲线
Douglas-Peucker 算法也称为Ramer-Douglas-Peucker 算法或迭代端点拟合算法,是一种通过减少点数来平滑折线(由线性线段组成的线)的算法。简化曲线应保留原始曲线的粗略形状,但仅包含定义原始曲线的点的子集。粗化程度由单个参数 ε 控制,该参数定义原始点和简化曲线之间的最大距离。该算法由 Urs Ramer 于 1972 年独立开发,由 David Douglas 和 Thomas Peucker 于 1973 年独立开发。原创 2024-02-11 10:20:08 · 601 阅读 · 0 评论 -
计算机视觉 - 毛玻璃片缺陷分类
正如我们所看到的,这三种方法都有各自的优缺点。阈值化在斑点分割中非常好,而高通即使在复杂的情况下也能检测点缺陷,比如光照梯度和哑光表面带来的噪声,而Gabor检测器结合了高通滤波器的灵敏度和像阈值化一样忽略不需要的对象的能力。对图像的一些操作更容易应用于图像的FT,而不是图像本身,考虑到FT的可逆性,它是全局图像处理的一个非常强大的工具。张宏喜,郭振铎,齐泽刚,王久歌,“基于离散傅立叶变换和最佳阈值方法的玻璃缺陷检测研究”,2012国际计算机科学与信息处理大会,陕西西安,2012,第1044–1047页。翻译 2024-01-21 15:43:31 · 239 阅读 · 0 评论 -
数字图像处理 Harris 角点和边缘检测器
在图像中,角是两个边缘相交的区域。事实上,原始论文认为角点应该是特征检测的基石,因为它们具有以下特征:离散——它们占据一个独特且小的空间(不是连续体)可靠——可能在每一帧的相似区域中重新出现有意义——强角通常来自实际物体而不是阴影或灯光首先让我们看看角的x(水平)和y (垂直)梯度是什么样的。我们可以使用Sobel 算子来计算。角点的水平 (x) 和垂直 (y) 图像梯度。上图的最左侧,是一个带有噪声的角的图像。中间的两个图像是图像的x和y梯度。最右侧是x、y梯度的散点图。原创 2024-01-07 06:45:00 · 954 阅读 · 0 评论 -
机器学习笔记 - 偏最小二乘回归 (PLSR)
偏最小二乘回归(PLSR)是机器学习和预测分析领域的一种流行算法。是一种用于技术。PLSR是一种在因素较多且高度共线性时构建预测模型的方法。它是一种基于回归的方法,旨在找到预测变量空间中解释预测变量和响应之间最大协方差的方向。算法找到与响应变量最密切相关的预测变量的线性组合。该方法在处理大量预测变量时特别有用,因为它有助于降低数据集的维数而不丢失太多信息。PLSR 属于监督学习的范畴,这意味着该算法需要标记的训练数据来构建模型。原创 2024-01-03 13:51:28 · 3302 阅读 · 0 评论 -
机器学习笔记 - 基于RAFT的光流估计进行稳健的运动物体检测
如果相机在移动,光流本身无法有效检测运动。尽管可以区分某些运动,但我们需要找到一种方法来区分相机和物体运动,以便执行检测。在本教程中,我们将利用深度光流和特殊的 RANSAC 算法来检测移动摄像机的运动。一个随机样本共识(RANSAC)的简单介绍下图显示了我们使用的两个测试图像之间的估计光流,数据来自VisDrone 数据集。VisDrone 数据集上面的图像表示了城市场景中的移动物体,右侧的估计光流是使用RAFT计算的,RAFT是一种强大的用于光流估计的深度神经网络。原创 2024-01-02 14:43:04 · 2260 阅读 · 1 评论 -
计算机视觉 - 了解Mosaic数据增强
一、简述数据增强包含各种扩展和增强机器学习和深度学习模型数据集的技术。这些方法跨越不同的类别,每种方法都会改变数据以引入多样性并提高模型的稳健性。几何变换(例如旋转、平移、缩放和翻转)会修改图像方向和结构。颜色和对比度调整会改变图像外观,包括亮度、对比度和颜色抖动变化。噪声注入(例如添加高斯噪声或椒盐噪声)会引入随机变化。剪切、滤除和混合技术(例如 Mixup 和 CutMix)会修改图像或其组件以创建新样本。此外,马赛克增强可以从多个原始图像构建合成图像,使数据全面多样化。原创 2023-12-29 16:29:38 · 2254 阅读 · 0 评论 -
数字图像处理 使用Python制作不同的用于表征算法的测试图像
我们的目标是在更简单的图像上表征算法,我们将专注于使用 numpy 和 opencv 创建旋转对称测试图像。首先我们将制作一个简单的测试图像,然后我们将使用正弦曲线制作更复杂的图像。这是一个具有各种峰值和谷值的测试图像,可以供我们比较算法或滤波器的性能。当我们从中心向外时,进入一个非常高的频率区域,该区域的频率一直到边缘逐渐减小。在计算机视觉和图像处理中,创建测试图像通常很有用,可以更好地了解算法或过滤器的执行方式。我们使用高斯模糊的原因是使圆的边界逐渐趋于零,而不是粗暴地下降。的函数的圆形对称波纹。原创 2023-12-28 06:45:00 · 781 阅读 · 0 评论 -
计算机视觉 - 用于基于图切割算法的木材堆叠测量的权重估计(基于圆形霍夫变换和局部圆度测量)
计算机视觉技术在木材行业中被用于检测和测量成堆木材中的原木。主要是测量原木的数量及其体积和尺寸。很多场景都是手动测量和收集此类数据,耗费人力并且存在人为错误的风险。可靠的替代工业技术是使用激光扫描仪来扫描,然后估计木材堆中每根原木的长度、尺寸和体积。然而,安装和维护激光扫描仪是一种成本昂贵的解决方案。并且在工厂设施之外不容易进行扫描。在我们的场景中,图像由合作林业的人员拍摄,分辨率为640x480像素。这些图像可能会模糊、曝光过度或曝光不足,这意味着图像质量可能远非理想。原创 2023-12-06 06:15:00 · 332 阅读 · 0 评论 -
OpenCV学习笔记 - 使用密集光流检测运动的简单方法
我们已经了解了如何使用帧间差分和密集光流来检测运动。当相机不移动时,这两种方法都效果很好,但是对于静止相机场景,还有一种方法,这就是背景减法。在这种方法中,我们学习背景模型,然后从当前图像中减去它以获得初始运动掩模。原创 2023-12-25 06:45:00 · 509 阅读 · 0 评论 -
OpenCV学习笔记 - 使用 OpenCV 检测运动的最简单方法
非极大值抑制是去除不太可能的检测(通常是重复检测)的过程,它是强大的目标检测器(例如 YOLO)的常见部分。右侧的卡车有多个检测,一般是前面一个,后面一个。这种方法的一个关键假设是相机必须是静止的,如果相机移动,我们将不得不采用更先进的技术(例如相机运动补偿)来准确确定哪些对象正在移动。此外,移动物体的大小会有很大差异,大的目标的差异会明显更大,并且图像底部的像素运动也更大。差异基本上包含了我们检测移动物体所需的所有信息,但是如果我们想制作一个相对有效的物体检测器,我们还需要做更多的事情,下图显示了原因。原创 2023-12-24 06:45:00 · 404 阅读 · 0 评论 -
数字图像处理 - 使用Rembg库在Python中轻松删除背景
认识到易于使用的 Python 库用于背景去除的有用性和需求,Dag Sverre Seljebotn 进一步开发了 rembg 库,为利用 Rembg 算法提供了一个方便的 Python 接口。rembg 模块提供了一个简单的接口,用于在 Python 代码中使用 Rembg 算法。Python 中的 rembg 模块是一个用于去除图像背景的库。该算法经过训练,可以识别图像中的前景物体并将其与背景分开,从而产生具有透明背景的图像。rembg库基于 Rembg 算法,该算法本身有一个有趣的历史。原创 2023-12-15 06:45:00 · 1841 阅读 · 0 评论 -
机器学习笔记 - 基于深度学习计算视频中演员的出镜时间
这里是使用动画片猫和老鼠进行计算,基本流程如下:1、导入并读取视频,从中提取帧,并将其另存为图像2、标记一些图像以训练模型(别担心,我已经为你做好了)3、根据训练数据构建我们的模型4、对剩余图像进行预测5、计算汤姆和杰瑞的屏幕时间。原创 2023-12-05 12:12:33 · 370 阅读 · 0 评论 -
机器学习笔记 - 基于百度飞桨PaddleSeg的人体分割模型以及TensorRT部署说明
虽然Segment Anything用于图像分割的通用大模型看起来很酷(飞桨也提供分割一切的模型),但是个人感觉落地应用的时候心里还是更倾向于飞桨这种场景式的,因为需要用到一些人体分割的需求,所以这里主要是对飞桨高性能图像分割开发套件进行了解和使用,但是暂时不训练,因为搞数据集挺费劲。内置及最新发布HumanSeglite模型超轻量级人像分割模型,可支持移动端场景的实时分割。原创 2023-11-29 06:45:00 · 1110 阅读 · 1 评论 -
视频编解码器的工作原理
综上所述,熵编码是解码过程的最后一步,它通过为较常见的系数分配较短的代码,为较不常见的系数分配较长的代码来进一步压缩视频数据。它将较短的代码分配给更常见的系数,将较长的代码分配给不太常见的系数。较频繁的系数分配较短的代码,较不频繁的系数分配较长的代码。这些先进的方案对不同的频段使用不同的量化值,这允许对高频系数应用更多的压缩,而高频系数通常对视频质量不太重要。使用有损压缩时,视频输出的质量会受到所使用的压缩级别的影响。删除的数据量取决于所使用的压缩级别,较高的压缩级别会导致更大的数据丢失和较小的文件大小。原创 2023-11-28 07:00:00 · 314 阅读 · 0 评论 -
如何使用OpenCV转换图像并创建视频,实现Ken Burns特效
因此,您可以使用 numpy 切片语法来获取像素y0到y1垂直方向和像素x0到x1水平方向(请记住,在矩阵中,坐标是从上到下、从左到右编号的)。这里遇到的问题是保存视频时,需要使用FourCC.FromString("X264"),而不是Python的那个格式,看官网说是有些东西被废弃了,没有深究。将图像和目标尺寸作为像素大小的(宽度,高度)元组,并返回一个新的 numpy 数组。当使用OpenCV时,最常使用的是图像,但是我们也可以多个图像创建动画,通过引入时间轴更容易可视化。原创 2023-11-27 08:45:28 · 533 阅读 · 0 评论 -
机器学习比较 - 基于OpenCV进行图像向量的提取
在将图像输入机器学习算法之前,通常对图像执行的预处理步骤之一是将它们转换为特征向量。将图像转换为特征向量有几个优点,可以使机器学习算法更加高效的运行。在将图像转换为特征向量的不同技术中,经常与不同机器学习算法结合使用的两种最流行的技术是定向梯度直方图和词袋技术。这里主要就是为了了解用于图像矢量表示的定向梯度直方图 (HOG) 和词袋 (BoW) 技术。在OpenCV中也有机器学习模块,机器学习模块要求将图像数据以等长度的特征向量的形式输入到机器学习算法中。原创 2023-11-25 22:21:50 · 586 阅读 · 1 评论 -
数字图像处理 基于numpy库的傅里叶变换
这些分量代表图像中平滑且渐变的变化,例如大的均匀区域、柔和的渐变或亮度的缓慢过渡。这种幅度谱的可视化对于理解频率分量的分布非常重要,我们稍后可以使用频率分量的分布来设计针对频域特定区域的滤波器,以增强或消除原始图像(例如扫描标记)中的噪声。将滤波器应用于频域表示可以让我们去除不需要的频率分量(例如,图像中的扫描标记之类的噪声)或强调特定频率。在使用带纹理的水平线伪影校正绘画图像时,我创建了一个方形掩模来仅保留 DC 分量及其附近的小区域,以便仅保留图像的最重要的频率或部分。是图像频率分量的直观表示。原创 2023-11-06 11:28:10 · 551 阅读 · 0 评论 -
机器学习笔记 - 车道检测的几种深度学习方法
在任何情况下(锚或其他),如果您不预测掩码,您将直接预测数字。但什么数字呢?请注意“锚”这个词的使用……您以前在哪里见过这个词?是的!在物体检测中!在对象检测中,有时可以使用预定义边界框的锚点(行人通常是垂直的、很小的等等......)。在基于锚点的对象检测中,您的模型首先将锚框放置在各处。例如,如果检测行人,大多数这些框将是垂直框,并且您可以像先前一样使用该知识。然后,您可以预测检测到的边界框和锚框之间的“移位”或调整。原创 2023-10-15 11:10:37 · 1082 阅读 · 0 评论 -
机器学习笔记 - 构建自己的视频分类模型的分步教程
这里使用UCF101 - 动作识别数据集,该数据集由属于 101 个不同类别的 13,320 个不同视频片段组成,从YouTube收集。101个动作类别的视频分为25组,每组可以包含4-7个动作视频。来自同一组的视频可能具有一些共同特征,例如相似的背景、相似的观点等。动作类别可分为五种类型:1)人与物体交互2)仅身体运动3)人与人交互4)演奏乐器5)运动。数据集下载地址我们将按照官方文档中的建议将数据集分为训练集和测试集。原创 2023-10-09 10:41:32 · 699 阅读 · 0 评论 -
机器学习笔记 - 两个静态手势识别的简单示例
手势识别方法通常分为两类:静态或动态。静态手势是那些只需要在分类器的输入处处理单个图像的手势,这种方法的优点是计算成本较低。动态手势需要处理图像序列和更复杂的手势识别方法。进一步了解可以参考下面链接。静态手势识别和动态手势识别的区别和技术路线简介-优快云博客为了实现完全沉浸式的 AR 应用,系统的输出(例如可视化)以及系统的输入必须适应用户的现实。计算的发展和新技术的易用性推动了 Kinect 和 Leap Motion 等设备的发展,它们是输入设备技术创新的例子。原创 2023-10-07 18:55:10 · 1313 阅读 · 2 评论 -
机器学习笔记 - k-NN算法的数学表达
所有的机器学习算法都是有假设前提的。k-NN算法的假设前提是相似的输入有相似的输出。其分类规则是对于测试输入x,在其k个最相似的训练输入中分配最常见的标签。k-NN 的正式定义:对于一个待测试数据。将的个最近邻的集合表示为。的正式定义为并且。(即再中但不在中的每个点到的距离至少与中最远的点一样远)。然后我们可以将分类器定义为返回中最常见标签的函数:其中众数mode(⋅)表示选择出现次数最多的标签,如果出现平局可能你需要主动选择其中一个。要理解并思考k如何影响分类器?原创 2023-09-23 10:57:12 · 243 阅读 · 0 评论 -
计算机视觉 回头重新理解图像中的矩
上面说几十年前使用不变特征的方法似乎很有前途的,其基本思想是通过一组称为不变量的可测量量来描述对象,这些量对特定变形不敏感,并且提供足够的辨别力来区分属于不同类别的对象。从数学的角度来看,不变式I是在所有可接受的图像函数的空间上定义的函数,在退化算子 D 下不会改变其值,即满足条件 I(f) = I(D(f)) 对于任何图像函数f.这种性质称为不变性。在实践中,为了适应不完美分割、类内变异和噪声的影响,通常将此要求制定为较弱的约束:I(f)不应与I(D(f))显着不同。原创 2023-09-22 09:46:41 · 678 阅读 · 0 评论 -
OpenCV中的HoughLines函数和HoughLinesP函数到底有什么区别?
基于OpenCV进行直线检测可以使用HoughLines和HoughLinesP函数完成的。这两个函数之间的唯一区别在于,第一个函数使用标准霍夫变换,第二个函数使用概率霍夫变换(因此名称为 P)。概率版本之所以如此,是因为它仅分析点的子集并估计这些点都属于同一条线的概率。此实现是标准霍夫变换的优化版本,在这种情况下,它的计算强度较小且执行速度更快。霍夫变换的原始形式旨在。后来这项技术后来被推广到检测其他形状,如圆形、椭圆形等。要使用霍夫线变换,图像首先需要二值化。原创 2023-09-21 10:51:54 · 876 阅读 · 0 评论 -
广义霍夫变换和模板匹配的不同
请看下面的参考图片,下面的图片是模板图,实际上下面左图的红点就是参考点,计算了边缘的点相对于中心点的距离和角度,并存储到R-table中。第 2 步:模板形状规范(计算 r 表),实际就是针对模板图像设立一个参考点, 并统计各个边缘点相对参考点构成的向量, 存储到R-table中,边缘点梯度方向的参考点。而广义霍夫变换是为了检出那些无法写出解析式的不规则形状,虽然在深度学习大行其道的时代,霍夫变换也还是有很多应用场景,另外广义霍夫变换本质上也是一种模板匹配算法。广义霍夫变换可用于对象识别。原创 2023-02-03 22:08:38 · 1138 阅读 · 0 评论 -
Opencv学习笔记 快速色彩转移
python语言实现图片之间的快速色彩转移原创 2020-10-03 22:16:19 · 728 阅读 · 0 评论 -
OpenCV每日函数 特征检测和描述模块(5) KAZE类/AKAZE类(提取关键点和计算描述符)
PF Alcantarilla等人2012 年提出 KAZE 特征,通过非线性扩散滤波利用非线性尺度空间。这使得图像中的模糊局部适应特征点,从而减少噪声并同时保留主题图像中区域的边界。KAZE 检测器基于Hessian 矩阵的尺度归一化行列式这是在多个尺度级别计算的。使用移动窗口将检测器响应的最大值作为特征点拾取。特征描述通过在每个检测到的特征周围的圆形邻域中找到主导方向来引入旋转不变性的特性。KAZE 特征对旋转、尺度、有限仿射具有不变性,并且在不同尺度上具有更多的独特性,但代价是计算时间适度增加。下面等原创 2022-06-17 20:56:05 · 1541 阅读 · 0 评论 -
OpenCV每日函数 几何图像变换模块 (8) remap函数
对图像应用通用几何变换。函数 remap 使用指定的映射转换源图像: 其中具有非整数坐标的像素值是使用一种可用的插值方法计算的。 mapx 和 mapy 可以分别编码为 map1 和 map2 中的单独浮点映射,或者 map1 中 (x,y) 的交错浮点映射,或者使用 convertMaps 创建的定点映射。 您可能希望将映射的浮点表示转换为定点表示的原因是它们可以产生更快(2x)的重新映射操作。 在转换后的情况下,map1 包含对 (cvFloor(x), cvFloor(y)),map2原创 2022-06-13 16:08:58 · 1817 阅读 · 1 评论 -
OpenCV每日函数 图像过滤模块 (14) medianBlur中值滤波函数
使用中值滤波器模糊图像。该函数使用具有 ksize×ksize 孔径的中值滤波器对图像进行平滑处理。 多通道图像的每个通道都是独立处理的。 支持就地操作。中值滤波器在内部使用 BORDER_REPLICATE 来处理边界像素,请参阅 BorderTypes。...............原创 2022-06-13 10:22:51 · 2062 阅读 · 0 评论 -
OpenCV每日函数 图像过滤模块 (20) sepFilter2D函数
该函数对图像应用可分离的线性滤波器。 也就是说,首先,每一行 src 都用一维内核 kernelX 过滤。 然后,结果的每一列都用一维内核 kernelY 过滤。 由 delta 移位的最终结果存储在 dst 中。原创 2022-06-13 11:54:39 · 860 阅读 · 0 评论 -
OpenCV每日函数 图像过滤模块 (4) buildPyramid图像金字塔函数
图像金字塔表示,是由计算机视觉、图像处理和信号处理社区开发的一种多尺度 信号 表示,其中信号或图像经过反复平滑和二次采样。金字塔表示是尺度空间表示和多分辨率分析的前身。buildPyramid函数为图像构造高斯金字塔。该函数构造一个图像向量,并通过递归地将 pyrDown 应用于先前构建的金字塔层来构建高斯金字塔,从 dst[0]==src 开始。 在高斯金字塔中,后续图像使用高斯平均值(高斯模糊)加权并按比例缩小。每个包含局部平均值的像素对应于金字塔较低级别的邻域像素............原创 2022-06-11 17:13:51 · 1055 阅读 · 0 评论 -
Opencv学习笔记 形态学抽取骨架
使用OpenCV库计算形态骨架。获得的骨架并不完美,但与其他现有算法相比,这是一种非常简单的方法。仅使用两个基本的形态学运算来计算形态骨架:扩张和侵蚀。在伪代码中,该算法的工作方式如下:img = ...;while (not_empty(img)){ skel = skel | (img & !open(img)); img = erosion(img);} 在每次迭代中,图像都会再次受到侵蚀,并通过计算当前侵蚀的并集减去侵蚀的开始程度...原创 2020-09-23 20:31:48 · 3254 阅读 · 0 评论 -
Opencv学习笔记 图像拼接一全景拼接
全景拼接算法通常包括四个步骤:步骤1:从两个输入图像中检测并提取关键点(DoG,Harris等)步骤2:匹配关键点步骤3:使用RANSAC算法通过匹配的特征向量来估计变换矩阵步骤4:使用从步骤3获得的矩阵应用变换原创 2020-11-07 11:37:19 · 3144 阅读 · 3 评论 -
Opencv学习笔记 - ArUco,一个开源的微型的现实增强库
姿势估计在许多计算机视觉应用中非常重要:机器人导航,增强现实等等。该过程基于发现真实环境中的点与其2d图像投影之间的对应关系。这通常是一个困难的步骤,因此通常使用合成或基准标记来简化操作。最受欢迎的方法之一是使用二进制方形基准标记。这些标记的主要优点是单个标记可以提供足够的对应关系(四个角)来获得相机的姿势。而且,内部二进制编码使它们特别健壮,从而允许应用错误检测和纠正技术。...原创 2021-03-06 14:58:34 · 3814 阅读 · 0 评论 -
Opencv学习笔记 各向异性滤波/均值滤波/高斯滤波/中值滤波/加权中值滤波/高斯低通滤波
各向异性滤波:各向异性扩散滤波主要是用来平滑图像的,克服了高斯模糊的缺陷,各向异性扩散在平滑图像时是保留图像边缘的,和双边滤波很像。双边滤波:双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。和其他滤波原理一样,双边滤波也是采用加权平均的方法,用周边像素亮度值的加权平均代表某个像素的强度,所用的加权平均基于高斯分布。原创 2020-09-22 07:42:57 · 1794 阅读 · 5 评论 -
Windows下OpencvSharp编译CUDA 一、基本知识入门&信心满满
尝试进行opencvsharp下编译cuda。 但OpenCvSharp中没有cuda的完整支持,只有最基本的类型支持(GpuMat支持)。作者的原文如下,大概就是说cuda需要用户自己编译opencv ,没有一个统一版本的dll提供使用,所以就删除了cuda的支持。原创 2020-07-11 17:18:22 · 2082 阅读 · 0 评论
分享