- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我按照 opencv 教程中的步骤操作:
这里对我不起作用。
谁能帮我弄清楚为什么我不能得到那样的输出
import numpy as np
import cv2
cap = cv2.VideoCapture('Shorttest.mp4')
# params for ShiTomasi corner detection
feature_params = dict( maxCorners = 100,
qualityLevel = 0.3,
minDistance = 7,
blockSize = 7 )
# Parameters for lucas kanade optical flow
lk_params = dict( winSize = (15,15),
maxLevel = 2,
criteria = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03))
# Create some random colors
color = np.random.randint(0,255,(100,3))
# Take first frame and find corners in it
ret, old_frame = cap.read()
old_gray = cv2.cvtColor(old_frame, cv2.COLOR_BGR2GRAY)
p0 = cv2.goodFeaturesToTrack(old_gray, mask = None, **feature_params)
# Create a mask image for drawing purposes
mask = np.zeros_like(old_frame)
while(1):
ret,frame = cap.read()
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# calculate optical flow
p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params)
# Select good points
good_new = p1[st==1]
good_old = p0[st==1]
# draw the tracks
for i,(new,old) in enumerate(zip(good_new,good_old)):
a,b = new.ravel()
c,d = old.ravel()
mask = cv2.line(mask, (a,b),(c,d), color[i].tolist(), 2)
frame = cv2.circle(frame,(a,b),5,color[i].tolist(),-1)
img = cv2.add(frame,mask)
cv2.imshow('frame',img)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
# Now update the previous frame and previous points
old_gray = frame_gray.copy()
p0 = good_new.reshape(-1,1,2)
cv2.destroyAllWindows()
cap.release()
最佳答案
光流估计可能给出糟糕结果的原因有很多。考虑到您的具体问题,我会首先关注:
你的位移太大了吗?这可能是因为帧速率低,或者因为项目移动得很快,或者靠近相机。按像素/帧测量位移。对于每个金字塔级别,您只能希望使用 LK 检测几个像素/帧。
你有运动模糊吗?不要与大位移相混淆。对于现实世界中的大运动,项目沿着运动方向变得模糊。
阴影和反射。较大类问题的一部分:不符合“亮度恒定性约束”的数据(一个点必须在帧与帧之间显示相同,尽管它的位置不同)。查看您的数据并向自己保证职位实际上看起来是一样的。如果使用稀疏流,您可以检查特征检测模块在每一帧上的表现。相同的点应该会作为要跟踪的良好特征而弹出。
您有多次运动吗?例如,这是汽车相互驶过的时候。也不好。
有一些方法可以解决所有这些问题,但要为工程项目做好准备。
关于python - OpenCV 中的 Lucas-Kanade 光流对我不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49267010/
谁能解释一下这两者之间的关系? 我知道 LK 方法用于找到图像的光流与检测图像特征的 KLT 跟踪器。两者之间有什么关系吗? LK方法中是否使用了KLT tracker算法来寻找光流? 最佳答案 KL
我对图像对齐和跟踪感到困惑,因为它们在许多讲座中一起处理。 kanade Lucas 图像对齐与跟踪有任何关系吗?如果是,图像对齐如何用于跟踪? 最佳答案 Lucas-Kanade(又名 Kanade
OpenCV 能否用于使用 Lucas Kanade 方法计算密集光流?我知道 gpu/ocl 模块中的功能可以做到这一点 (gpu::PyrLKOpticalFlow::dense),但是是否有非
OpenCV tutorials-python中给出的方法在处理上有一些延迟,就像以0.5速度播放视频,你能推荐其他任何可以忽略不计地获得光流特征(位移矢量场)的方法吗延迟? import cv2 i
我最近一直在尝试实现用于图像对齐的 Lucas-Kanade 算法,如本文所述:https://www.ri.cmu.edu/pub_files/pub3/baker_simon_2004_1/bak
在时间复杂度的大 O 表示法中,在 OpenCV (C++) 中实现的 Lucas-Kanade 光流计算的复杂度是多少?你是如何推断出来的? 谢谢! 最佳答案 假设扭曲参数的数量是n,T中的像素数量
我正在编写一个代码,我必须找到我感兴趣的所有角点的轨迹。因此,同样,我使用了 LKPyr 光流,它使用前一个图像的角点并找到它们在当前图像中。我逐帧使用光流,即帧 1 和 2,然后是 2 和 3。因此
SO上也有类似的问题,但是没有找到我想要的答案。我需要实现强大的光流以跟踪(检测到的)面部特征。我使用 goodFeaturesToTrack/SURF(我还没有决定哪个最好)来获取初始功能。 我的问
我正在研究光流,基于 the lecture notes here和互联网上的一些示例,I wrote this Python code . 所有代码和示例图像也在那里。对于大约 4-5 个像素的小位
我目前正在做一个对象跟踪的项目,使用过c++、opencv。我已经成功地使用 Farneback dense optical flow 来实现分割方法,例如 k 均值(使用每帧中的位移)。现在我想用
我想根据从cvCalcOpticalFlowPyrLK的输出中得到的所有点绘制一个边界框。 我已经完成了对物体的跟踪,并能够绘制出表示流动方向的线。但是,在将所有要点分组并归类为对象时遇到问题。 我正
我想处理 Lucas Kanade 的 3D 图像并获得 3D 运动场。图片的大小为[NI, NJ, NK, NT] 其中NI, NJ, NK 是数字x、y 和 z 方向的体素数; NT 表示时间步数
我按照 opencv 教程中的步骤操作: http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_video/py
我找到了 LKT 算法的 Matlab 实现 here并基于亮度恒常方程。 该算法通过将图像与适当的 2x2 水平和垂直边缘梯度运算符进行卷积来计算 x 和 y 方向上的图像梯度。 经典文献中的亮度恒
我在视频处理类(class)中接到了一项任务 - 实现 Lucas-Kanade 算法。由于我们必须在金字塔模型中进行,我首先为 2 个输入图像中的每一个构建一个金字塔,然后为每个级别执行多次 LK
作为大学项目,我正在使用 Lucas Kanade 方法编写光流脚本。虽然它运作良好,但有些事情我无法弄清楚。它在开始时使用几 MB 的内存,但该数量每秒都在迅速增加。当它为 480p 电影的 1 帧
来自 ' http://docs.opencv.org/3.1.0/d7/d8b/tutorial_py_lucas_kanade.html ',它说强度是梯度。 f(x), f(y) 是梯度,而 f
根据我的研究,LK光流可以通过三种方式实现。 cvgoodfeaturestotrackcvfindcorner子像素calcOpticalFlowPyrLK 是否有可能使用颜色或使用轮廓来跟踪对象?
我正在使用光流来跟踪一些功能,我是初学者,必须遵循这些步骤 匹配良好的特征进行跟踪 对它们进行 Lucas-Kanade 算法 查找第一帧和当前帧之间的单应性 进行相机校准 分解单应图 现在我不明白的
我正在使用光流来跟踪一些功能,我是初学者,必须遵循这些步骤 匹配良好的特征进行跟踪 对它们进行 Lucas-Kanade 算法 查找第一帧和当前帧之间的单应性 进行相机校准 分解单应图 现在我不明白的
我是一名优秀的程序员,十分优秀!