自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (6)
  • 收藏
  • 关注

原创 自定义flycharis数据集

flycharis数据集包含一对图像和对应的光流序列(00001_img1.ppm, 00001_img2.ppm, 00001_flow.flo)自己定义的数据集需要继承抽象类class torch.utils.data.Dataset,并且需要重载两个重要的函数:__len__ 和__getitem__,其中:(1). 在__init__中是初始化了该类的一些基本参数;(2). __getitem__中是真正读取数据的地方,迭代器通过索引来读取数据集中数据,因此只需要这一个方法中加入读取数据的相关

2020-09-20 15:18:46 636 1

原创 pytorch中F.grid_sample函数实现warp功能记录

光流算法中最重要的假设是亮度一致性,即: I1(x, y) = I2(x+u, y+v)令x = (x, y), u = (u, v), w(x,u) = x + u, 则I2(x+u, y+v)的可以记作I2(w(x, y)).w即是光流算法中的warp函数,在pytorch中可以借助torch.nn...

2020-09-17 13:11:16 4154 3

转载 反向直接点法

直接法是用于视觉里程计估计相机位姿的一种重要方法。相比于其他依赖几何特征做相机位姿估计的方法,直接法具有无需计算特征点、不会丢失图像信息的特点,并且在缺乏几何特征的场景,比如白墙或者走廊等依然可以有效的工作。下面我们就对直接法做详细的说明:直接法最直观简单的应用在于RGB-D相机,这种相机可以得到同一时刻RGB图像和深度图像,根据深度图像可以得到每一个像素点在三维空间中的坐标,所有的这些三维点就形成的被拍摄场景中物体的surface,同时也知道每一个surface点对应的颜色信息。相机在运动过程中会产

2020-06-28 21:57:33 380

原创 Determining Optical Flow (Horn-Schunck光流)

假设t时刻,在图像上点(x,y)处的像素值(亮度)为E(x,y,t),假设在移动过程中,其亮度是恒定的。即:假设位移足够小 ,使用一阶泰勒展开得到:这也就是亮度不变性假设。但是此时在每一个点出只有这一个约束条件,每一点处的运动矢量包括两个运动分量(u,v),因此需要增加额外约束。我们假设图像中相邻的点具有相似的运动矢量,且图像中的运动场变化较为平滑。即:亮度不变...

2019-10-14 20:35:25 2111

原创 光流场景流估计交流群

大家可以进群交流,最好是研究方向为光流及场景流估计方向的研究生、博士等,可以分享探讨相关的论文。

2019-07-31 20:01:21 331

原创 花老湿学习OpenCV:Harr特征

引言:Haar-like特征多用于人脸检测、行人检测,等目标检测;Haar-like特征可以理解为卷积模板(如同prewitt、sobel算子,当然不完全一样),Haar-like特征模板内只有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜...

2019-07-21 19:35:29 384

原创 花老湿学习OpenCV:积分图计算

引言:Paul Viola和Michael Jones在2001年首次将积分图应用在图像特征提取上,在他们的论文“Rapid Object Detection using a Boosted Cascade of Simple Features”中,积分图被当作一种新的图像特征表征方式,可以把检测的Haar特征非常高效的计算出来,用于实时人脸检测系统。积分图是一种能够描述全局信息的矩阵表示...

2019-07-21 17:19:40 218

原创 花老湿学习OpenCV:Lucas-Kanade光流算法

引言:光流(Optical flow or optic flow)是关于视域中的物体运动检测中的概念。用来描述相对于观察者的运动所造成的观测目标、表面或边缘的运动。光流法在样型识别、计算机视觉以及其他影像处理领域中非常有用,可用于运动检测、物件切割、碰撞时间与物体膨胀的计算、运动补偿编码,或者通过物体表面与边缘进行立体的测量等等。光流测算:Lucas-Kanade光流算法:...

2019-07-07 21:39:50 1014

原创 深度和强度视频中的运动估计和分割(Motion estimation and segmentation in depth and intensity videos)

摘要:本文研究了在包含深度和强度信息的视频序列中独立运动目标的运动估计和分割,例如由TOF相机捕获的视频。 具体来说,本文提出了一种基于深度和强度数据融合的运动估计算法。 所得的运动信息用于导出长期点轨迹。 一种分割技术根据轨迹的运动和深度相似性将轨迹分组为时空段。 对合成视频和真实视频定量和定性分析验证了所提出的运动估计和分割方法。 该框架从飞行时间摄像机记录的视频中独立地提取运动物体....

2019-07-05 16:09:50 1213

原创 TOF摄像机视频中的运动分割(MOTION SEGMENTATION IN VIDEOS FROM TIME OF FLIGHT CAMERAS)

摘要:本文研究了深度摄像机视频序列中独立运动物体的运动估计和分割问题。具体地,我们提出了一种基于距离流和光流约束方程融合的运动估计算法。流场用于推导长期点轨迹。分割技术根据运动和深度相似性将轨迹分组为时空对象。我们展示了用飞行时间摄影机拍摄的真实场景的结果。1.介绍: 本文分析了飞行时间(TOF)摄像机拍摄的视频序列中的短期和长期运动。我们通过综合距离流和光流来估计视频中两...

2019-06-29 23:48:00 977

原创 花老湿学习OpenCV:LBP(Location Binary Pattern)特征

引言:LBP指局部二值模式,英文全称:Local Binary Pattern,是一种用来描述图像局部特征的算子,LBP特征具有灰度不变性和旋转不变性等显著优点。它是由T. Ojala, M.Pietikinen, 和 D. Harwood [1][2]在1994年提出,由于LBP特征计算简单、效果较好,因此LBP特征在计算机视觉的许多领域都得到了广泛的应用,LBP特征比较出名的应用是用在人脸...

2019-06-27 15:22:51 402

原创 花老湿学习OpenCV:HOG特征检测(HOG+SVM行人检测)

引言:HOG的核心思想是所检测的局部物体外形能够被光强梯度或边缘方向的分布所描述。通过将整幅图像分割成小的连接区域(称为cells),每个cell生成一个方向梯度直方图或者cell中pixel的边缘方向,这些直方图的组合可表示出(所检测目标的目标)描述子。为改善准确率,局部直方图可以通过计算图像中一个较大区域(称为block)的光强作为measure被对比标准化,然后用这个值(measure)...

2019-06-26 17:10:01 747

原创 花老湿学习OpenCV:SURF特征检测

引言:SIFT是一种鲁棒性好的尺度不变特征描述方法,但SIFT算法计算数据量大、时间复杂度高、算法耗时长。针对上述缺点许多研究者对SIFT算法做了不同的改进,Yanke等人提出用PCA-SIFT方法对特征描述进行数据降维,但在没有任何先验知识的情况下反而增加了计算量;Delpont等人提出用SVD方法进行特征匹配,但匹配过程计算复杂,且不能用于宽基线匹配;Grabner等人用积分图像虽提高了S...

2019-06-26 13:53:58 257

原创 花老湿学习OpenCV:SIFT特征检测

尺度空间:自然界中的物体随着观测尺度不同有不同的表现形态。例如我们形容建筑物用“米”,观测分子、原子等用“纳米”。更形象的例子比如Google地图,滑动鼠标轮可以改变观测地图的尺度,看到的地图绘制也不同;还有电影中的拉伸镜头等等……尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标在视网膜上的形成过程。用机器视觉系统分析未知场景时,计算机并不预先知道图像中物体的尺...

2019-06-26 11:53:50 304

原创 花老湿学习OPenCV:亚像素角点检测

引言:若进行图像处理的目的不是提取用于识别的特征点,而是进行几何测量,这通常需要更高的精度,而goodFeaturesToTrack() 只能提供简单的像素的坐标---有时候需要实数坐标而不是整数坐标。亚像素级角点检测的位置在摄像机标定、跟踪并重建摄像机的轨迹,或者重建被跟踪目标的三维结构时,是一个基本的测量值。API:代码展示:...

2019-06-25 09:23:06 1997

原创 花老湿学习OpenCV:Shi-Tomasi角点检测

引言:API:代码展示:#include "pch.h"#include <iostream>#include "opencv2/opencv.hpp"using namespace std;using namespace cv;Mat src;Mat graysrc;int maxConnerNum = 30;int max...

2019-06-24 21:28:50 1714

原创 花老湿学习OpenCV:Harris角点检测

引言:角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。对于同一场景,即使视角发生变化,通常具备稳定性质的特征。我们可以利用这一稳定的性质将角点应用三维场景重建运动估计,目标跟踪、目标识别、图像配准与匹配等计算机视觉领域。...

2019-06-24 11:09:58 312

原创 花老湿学习OpenCV:分水岭原理和实现watershed()

在很多实际应用中,我们需要分割图像,分割方法有多种经典的分割方法:常见图像分割方法:1、基于边缘检测的方法:此方法主要是通过检测区域的边缘进行分割,利用区域之间的特征的不一致性,首先检测图像中的边缘点,然后按照一定的方法把这些边缘点进行全部连接起来,从而构成分割区域。图像中的边缘通常是灰度,颜色或者纹理,其中基于灰度的方法很普遍,许多边缘检测算子利用灰度来检测图像的梯度,...

2019-06-21 15:22:54 1405

原创 花老湿学习OpenCV:floodFill()漫水填充的使用

引言:漫水填充法是一种用特定的颜色填充连通区域,通过设置可连通像素的上下限以及连通方式来达到不同的填充效果的方法。漫水填充经常被用来标记或分离图像的一部分以便对其进行进一步处理或分析,也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或只处理掩码指定的像素点,操作的结果总是某个连续的区域。 ...

2019-06-19 20:26:54 362

原创 花老湿学习OpenCV:distanceTransform()的使用

引言:Opencv中distanceTransform方法用于计算图像中每一个非零点距离离自己最近的零点的距离,distanceTransform的第二个Mat矩阵参数dst保存了每一个点与最近的零点的距离信息,图像上越亮的点,代表了离零点的距离越远。可以根据距离变换的这个性质,经过简单的运算,用于细化字符的轮廓和查找物体质心(中心)。API:代码示例:1...

2019-06-19 16:47:37 793

原创 花老湿学习OpenCV:点多边形测试(pointPolygonTest()的使用)

pointPolygonTest()测试一个点是否在给定的多边形内部,边缘或者外部:当measureDist设置为true时,返回实际距离值。若返回值为正,表示点在多边形内部,返回值为负,表示在多边形外部,返回值为0,表示在多边形上。当measureDist设置为false时,返回 -1、0、1三个固定值。若返回值为+1,表示点在多边形内部,返回值为-1,表示在多边形外部,返回值...

2019-06-18 21:23:57 1451

原创 花老湿学习OpenCV:图像矩与轮廓匹配

引言:矩的概念介绍矩函数在图像分析中有着广泛的应用,如模式识别、目标分类、目标识别与方位估计、图像的编码与重构等。从一幅图像计算出来的矩集,不仅可以描述图像形状的全局特征,而且可以提供大量关于该图像不同的几何特征信息,如大小,位置、方向和形状等。图像矩这种描述能力广泛应用于各种图像处理、计算机视觉和机器人技术领域的目标识别与方位估计中。一阶矩:与形状有关;二阶矩:显示...

2019-06-18 19:57:51 371

原创 花老湿学习OpenCV:轮廓周围绘制矩形框和圆形框

引言在实际应用中,常常会有将检测到的轮廓用多边形表示出来的需求。这里为大家讲解如何用多边形表示出轮廓,或者说如何根据轮廓提取出多边形。API:approxPolyDP ()主要功能是把一个连续光滑曲线折线化,对图像轮廓点进行多边形拟合。原理图:对比之前黑点连线,之后蓝色连线:boundingRect()函数计算并返回指定点集最外面的矩形边界。mi...

2019-06-16 21:52:08 454

原创 花老湿学习OpenCV:凸包检测

凸包:凸包(Convex Hull)是一个计算几何(图形学)中常见的概念。简单来说,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它是能包含点集中所有点的。理解物体形状或轮廓的一种比较有用的方法便是计算一个物体的凸包,然后计算其凸缺陷(convexity defects)。判断:如果在集合A内连接任意两个点的直线段都在A的内部,则称集合A是凸形的。直观的理解,就是一...

2019-06-14 15:52:57 1756 2

原创 花老湿OpenCV学习:轮廓的查找与绘制

引言:一个轮廓一般对应一系列的点,也就是图像中的一条曲线。其表示方法可能根据不同的情况而有所不同。在OpenCV中,可以用findContours()函数从二值图像中查找轮廓。寻找轮廓:findContours()函数关于第三、四个参数的理解可以参考博文:CSDN博客 https://blog.csdn.net/guduruyu/article/details/69...

2019-06-13 20:54:28 206

原创 花老湿学习OpenCV:模板匹配

引言:模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域,所以模板匹配首先需要一个模板图像T(给定的子图像)和一个待检测的图像-源图像S。工作过程相当于令模板图像在待检测图像上,从左到右,从上向下移动,然后计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。API:代码示例#include "pch.h"#include <iostr...

2019-06-13 16:23:21 247

原创 花老湿学习OpenCV:直方图、直方图的计算、均衡化、对比、反向投影

直方图概述: 在统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表,他的两个坐标分别是统计样本(图像、视频帧)和样本的某种属性(亮度,像素值,梯度,方向,色彩等等任何特征)。也可以这么理解,直方图是对数据的统计,并把统计值显示到事先设定好的bin(矩形条)中,bin中的数值是从数据中计算出的特征的统计量。总之,直方图获取的是数据分布的统计图,通...

2019-06-12 17:04:54 436

原创 花老湿学习OpenCV:像素重映射

像素重映射:简单点说就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。API:代码展示:#include "pch.h"#include <iostream>#include "opencv2/opencv.hpp"using namespace std;using namespa...

2019-06-11 20:38:41 213

原创 花老湿学习OpenCV:霍夫圆变换与圆检测

引言:霍夫圆变换的基本思路是认为图像上每一个非零像素点都有可能是一个潜在的圆上的一点,跟霍夫线变换一样,也是通过投票,生成累积坐标平面,设置一个累积权重来定位圆。标准Hough圆变换:在笛卡尔坐标系中圆的方程为:其中(a,b)是圆心,r是半径,也可以表述为:即所以在abr组成的三维坐标系中,一个点可以唯一确定一个圆。而在笛卡尔的xy坐标系中经过某一点的所有...

2019-06-11 15:42:39 891 1

原创 花老湿学习OpenCV:霍夫线变换与直线检测

引言:霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。霍夫变换于1962年由Paul Hough 首次提出[53],后于1972年由Richard Duda和Peter Hart推广使用[54],经典霍夫变换用来检测图像中的直线,后...

2019-06-11 11:20:53 434

原创 花老湿学习OpenCV:基于Canny算子的边缘检测

引言:图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波。我们知道微分运算是求信号的变化率,具有加强高频分量的作用。在空域运算中来说,对图像的锐化就是计算微分。由于数字图像的离散信号,微分运算就变成计算差分或梯度。图像处理中有多种边缘检测(梯度)算子,常用的包括普通一阶差分,Robert算子(交叉差分),Sobel算子等等,是基于寻找梯度强度。拉普拉斯算子(二阶差分)是基...

2019-06-10 22:42:20 386

原创 花老湿学习OpenCV:Laplacian算子与边缘检测

引言:图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈.边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。前面已经介绍了Sobel算子,接下来介绍Laplacian算子与边缘检测。Laplacian算子:在一个二维函数f(x,y)中,x,y两个方向的二阶差分分别为,所以Laplace算子的差分形式为...

2019-06-10 20:27:55 927

原创 花老湿学习OpenCV:基于Sobel算子的边缘检测

卷积应用-图像边缘提取:边缘是像素值发生跃迁的地方,是图像的显著特征之一,在图像特征提取、对象检测、模式识别等方面都有重要的作用。对图像求它的一阶导数delta = f(x) – f(x-1), delta越大,说明像素在X方向变化越大,边缘信号越强,如图: Sobel 算子是一个主要用作边缘检测的离散微分算子 (discrete ...

2019-06-10 17:29:13 367

原创 花老湿学习OpenCV:阈值化操作

引言:阈值化操作在图像处理中是一种常用的算法,比如图像的二值化就是一种最常见的一种阈值化操作。opencv2和opencv3中提供了直接阈值化操作cv::threshold()和自适应阈值化操作cv::adaptiveThreshold()两种阈值化操作接口,这里将对这两个接口进行介绍和对比。1、直接阈值化——cv::threshold()阈值化操作的基本思想是,给定一个输入数组和一个...

2019-06-10 11:38:49 279

原创 花老湿OpenCV学习:图像金字塔

图像金字塔:图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的...

2019-06-10 09:40:53 141

原创 花老湿OpenCV学习:形态学操作应用-提取水平与垂直线

原理方法:图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作 – 膨胀与腐蚀,使用不同的结构元素实现对输入图像的操作、得到想要的结果。- 膨胀,输出的像素值是结构元素覆盖下输入图像的最大像素值- 腐蚀,输出的像素值是结构元素覆盖下输入图像的最小像素值...

2019-06-09 19:10:39 224

原创 花老湿OpenCV学习:形态学操作(开、闭运算,形态学梯度,顶帽,黑帽)

除了膨胀和腐蚀,还有更多形态学操作:开操作- open、闭操作- close、形态学梯度- Morphological Gradient、顶帽 – top hat黑帽 – black hat。它们都基于morphologyEx()API,通过op的设置选择相应的操作。相关操作开操作和闭操作都是基于膨胀和腐蚀操作组合形成的。开操作: 先腐蚀,后膨胀。闭操作:先膨胀...

2019-06-09 11:32:04 364

原创 花老湿学习OpenCV:膨胀和腐蚀

前言:图像形态学操作 – 基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学形态学有四个基本操作:腐蚀、膨胀、开、闭膨胀与腐蚀是图像处理中最常用的形态学操作手段。形态学操作-膨胀、腐蚀:跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,其中B作为结构体可以是任意形状。腐蚀跟...

2019-06-08 22:03:40 111

原创 花老湿OpenCV学习:双边滤波

双边滤波:双边滤波的权重不仅考虑了像素的欧氏距离(如普通的高斯低通滤波,只考虑了位置对中心像素的影响),还考虑了像素范围域中的辐射差异(例如卷积核中像素与中心像素之间相似程度、颜色强度,深度距离等),在计算中心像素的时候同时考虑这两个权重。双边滤波的核函数是空间域核与像素范围域核的综合结果:代码展示:#include "pch.h"#inc...

2019-06-06 16:46:55 320

原创 花老湿OpenCV学习:高斯滤波

首先写一下对图像频率的一些理解:简单一点说,图像中的高频分量,指的是图像强度(亮度/灰度)变化剧烈的地方,也就是我们常说的边缘(轮廓);图像中的低频分量,指的是图像强度(亮度/灰度)变换平缓的地方。那么保留高频就是高通滤波器(边缘提取),保留低频就是低通录波器(图像平滑)。高斯滤波器可以使图像边缘变得平滑,它是一种低通滤波器。高斯滤波高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑...

2019-06-06 15:59:07 235

MyPointNet.zip

用PointNet实现点云分类,在ModelNet40数据集中准确率能够达到90.2%, 其中借助open3d对点云进行了可视化。使用时将data/cfg/ModelNet.data中数据集路径进行更改,应该就可以直接运行。 数据集是:modelnet40_normal_resampled

2020-11-18

金字塔Horn-Schunck光流算法实现

金字塔Horn-Schunck光流算法的实现,能够较好地解决大位移的问题。在VS2017下实现,并使用了OpenCV库,运行时,请自己设置项目的属性,添加OpenCV库。

2019-08-14

Horn-Schunck光流实现

论文Determining Optical flow 的代码实现,使用了OpenCV库,效果较好。 实现环境为:VS2017

2019-08-14

CoinFlip.zip

利用QT C++ 开发的翻金币小游戏,含有所需的资源文件(图片、音效等),可以直接运行。适合有一定基础或者刚入门的同学练手。

2019-05-23

socket编程 使用select与线程池

建立TCP、UDP单播、组播 创建服务器端与客户端,服务器端使用select机制接收客户端的请求,并交给线程池处理

2019-01-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除