问题标签 [opticalflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
2049 浏览

c++ - 使用 calcOpticalFlowPyrLK() 跟踪不准确

我正在尝试开发一个程序来跟踪车牌。我需要跟踪车牌并用 ID 号标记它们,这样我就可以只为每个车牌调用一次识别程序。我有跟踪问题。一旦成功检测到车牌区域,我就会创建掩码以仅从车牌中提取特征,然后在整个图像上跟踪它们。我使用goodFeaturesToTrack()并计算光流calcOpticalFlowPyrLK()。这是我的算法:

  1. 从相机获取帧。
  2. 找车牌。
  3. 从车牌区域提取特征。
  4. 从相机获取下一帧。
  5. 从框架中提取特征。
  6. 调用 calcOpticalFlowPyrLK()
  7. 虽然我们成功地跟踪了车牌中至少一半的特征,但我们会跟踪特征并将特征与下一个特征交换。

代码(仅部分):

输出是:

在此处输入图像描述

绿点是以前的特征,红点是实际特征。

如您所见,它们在某种程度上被很好地跟踪,但看起来它们被缩放并远离车牌。我只想从车牌中提取特征一次,然后只从框架中提取特征。我的逻辑有问题。这里可能有什么问题?

0 投票
1 回答
725 浏览

opencv - cvCalcOpticalFlowPyrLK 未按预期工作

我知道这是一个有据可查的问题,但我没有设法在网上找到令人满意的解决方案。开始。

我正在使用 cvCalcOpticalFlowPyrLK 来跟踪特征点的运动。我使用 cvGoodFeaturesToTrack 找到特征点并使用 cvFindCornerSubPix 对其进行细化。我在第一帧(参考帧)中找到特征点,并使用 LK 跟踪这些点相对于参考帧的移动。我用找到的当前帧特征点坐标更新这些点。这是我观察到的:

1)编号。cvGoodFeaturesToTrack 找到的好的特征点很少。我试图找到 100 分,但我总是得到不到 10 分。2)编号。5-6 帧后的特征点减少了 50%,然后又减少了 50 x 5 帧,这是当主体不运动时。在某些点被正确跟踪但有些点偏离的意义上,跟踪是不完整的。

我在 youtube 或 iphone 应用程序上看到了演示应用程序。号的下降。从帧到帧的特征点不是我在我的应用程序中看到的。所以我怀疑我设置的参数可能是错误的。

这就是我调用函数的方式:

cvGoodFeaturesToTrack(image, eigen_image, temp_image,corner_point, &corner_count, 0.01(质量等级), 3(最小距离), 0, 10(块大小), 0(使用harris), 0.04(k));

cvFindCornerSubPix(图像,cornersPoint,corner_count,cvSize(WINDOW_SIZE,WINDOW_SIZE),cvSize(-1,-1),cvTermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS,20,0.3));

cvCalcOpticalFlowPyrLK(图像,currentFrame,rpV->pyramid_images0,rpV->pyramid_images1,cornersPoint,cornersCurrent,corner_count,cvSize(WINDOW_SIZE,WINDOW_SIZE),10(级别),features_found,feature_errors,cvTermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS),20,0。 );

另一件事是我使用的是灰度相机(红外线相机)。不过,我并不重要。我想知道我是否在这里遗漏了任何重要的东西。

非常感谢任何形式的帮助。

谢谢, 开尔文

0 投票
1 回答
8562 浏览

opencv - 加速光流(createOptFlow_DualTVL1)

createOptFlow_DualTVL1()用来计算光流,这正是我想要的,但它很慢。有什么办法可以加快一点速度,还是有任何其他光流功能可以用更少的处理时间给我相同的结果?我用过calcOpticalFlowFarneback()cvGoodFeaturesToTrack()但质量不好。请帮忙。

提前谢谢以下是我的申请方式createOptFlow_DualTVL1()

0 投票
2 回答
2763 浏览

android - 在opencv android中计算光流

我是 OpenCV 的初学者,正在尝试使用 OpenCV 的calcOpticalFlowFarneback方法计算光流。

请看一下我的实现:

它给出了错误,因为可能是我在参数中输入了错误的值。有人可以帮忙吗?

0 投票
2 回答
441 浏览

android - onPreviewFrame 没有在 Nexus 4 手机上被调用......但在模拟器上

以上是打开相机的方法。(更多代码见:https ://github.com/sungjkang/OpticalFlow/blob/master/src/com/wais/opticalflow/View.java )

使用模拟器在我的笔记本电脑上运行正常,但在我的 Nexus 4 上根本无法运行。经过一番挖掘,我注意到我在使用手机时从未进入 onPreviewFrame,但这种方法正在用我的模拟器调用。

有谁知道这里发生了什么?

0 投票
1 回答
2556 浏览

matlab - 将时间高斯滤波器应用于一系列图像

我想知道如何在 MATLAB 中的两个图像之间应用高斯滤波器。我了解对于一张图像上的空间高斯滤波器,您会执行以下操作:

但是我试图为光流实现的算法(来自 Trucco 和 Verri 文本)描述了在一系列帧的时间维度上应用 sigma = 1.5 帧的高斯滤波器。

有没有办法在 MATLAB 中做到这一点?我认为也许 3d 高斯过滤器会起作用,但我不确定这是否是正确的方法,或者我将如何创建/应用这样的过滤器。

0 投票
3 回答
9331 浏览

opencv - 如何从 ocl::PyrLKOpticalFlow::dense() 绘制光流图像

如何绘制光流图像ocl::PyrLKOpticalFlow::dense()实际计算光流的水平和垂直分量?所以不知道怎么画。我是 opencv 新手。谁能帮我?

句法 :

0 投票
1 回答
686 浏览

opencv - opencv 光流检测不到大部分向量

我在相对较小(288 x 360)的交通视频上使用光流,我遇到了问题。我无法获得帧中某些地方的光流向量。这张图片显示了被检测为“要跟踪的好特征”的点

goodFeaturesToTrack()

像这样的功能:

在此处输入图像描述

你会看到在后面检测到很多点但是当我使用

calcOpticalFlowPyrLK()

得到这样的光流向量:

它只返回前面的点,如图像中的那样:

在此处输入图像描述

但我需要所有视频的矢量。那么我怎样才能从后面获取向量呢?

编辑:

我做错的是我在过滤小向量。

0 投票
1 回答
2212 浏览

c++ - OpenCV 中的光流颜色图

我正在尝试使用 farneback 方法计算和显示 OpenCV 中的密集光流。我找到了一个使用 CUDA 函数来生成它并显示我用作自己代码基础的颜色图的示例。光流计算:

显示功能:

问题是编译器每次到达 imshow 时都会抛出异常。

监视窗口说

任何帮助/替代解决方案将不胜感激。

0 投票
1 回答
3775 浏览

c++ - 找到每个像素opencv的光流

我使用以下函数作为我的跟踪算法的基础。

//1. 检测我的意思的特征,这个函数提取唯一好的特征,

// 2. 跟踪特征

cv::calcOpticalFlowPyrLK将前一张图像中的点向量作为输入,并返回下一张图像上的适当点。假设我想计算每个像素的光流而不是好的特征

换句话说,开始计算从(1,1)到(m,n)的光流