我试图使用Opencv的密集光流函数的输出来绘制运动矢量的箭袋图,但是却无法找到函数实际输出的内容.这是代码:
import cv2
import numpy as np
cap = cv2.VideoCapture('GOPR1745.avi')
ret, frame1 = cap.read()
prvs = cv2.cvtColor(frame1,cv2.COLOR_BGR2GRAY)
hsv = np.zeros_like(frame1)
hsv[...,1] = 255
count=0
while(1):
ret, frame2 = cap.read()
next = cv2.cvtColor(frame2,cv2.COLOR_BGR2GRAY)
flow = cv2.calcOpticalFlowFarneback(prvs,next,None, 0.5, 3, 15, 3, 10, 1.2, 0)
mag, ang = cv2.cartToPolar(flow[...,0], flow[...,1])
hsv[...,0] = ang*180/np.pi/2
hsv[...,2] = cv2.normalize(mag,None,0,255,cv2.NORM_MINMAX)
rgb = cv2.cvtColor(hsv,cv2.COLOR_HSV2BGR)
if count==10:
count=0
print "flow",flow
cv2.imshow('frame2',rgb)
count=count+1
k = cv2.waitKey(30) & 0xff
if k == 27:
break
elif k == ord('s'):
prvs = next …Run Code Online (Sandbox Code Playgroud) 我最近不得不使用Anaconda软件包重新下载并安装Python.这样做是因为我在安装一些软件包时遇到了问题,并且发现消息来源说使用Anaconda简单地完成它会更容易.
我现在有一个问题,我无法升级或找到新的包(我以前能够做到,我认为它给出了所有Pypi包的列表),并且我不确定我需要输入哪个URL以便PyCharm找到它曾经使用的所有包.这就是我目前在存储库中所拥有的内容,正如您所看到的,我已经添加了一些PyPi链接,其中没有一个成功:
有谁知道需要在这里输入什么链接才能浏览所有PyPi包或升级当前安装的包?
我已经能够生成一个坐标列表,我想将其用作我想在图像上绘制的多个小圆圈的中心。
我能够在各个点绘制圆圈,但无法找到在所有中心绘制圆圈的正确语法。我希望用于中心的坐标存储如下,在名为 Points 的数组中,其形状为 :(11844, 2)
[[ 5 5]
[ 5 10]
[ 5 15]
...,
[630 460]
[630 465]
[630 470]]
Run Code Online (Sandbox Code Playgroud)
我可以使用以下代码绘制单个圆圈:
cv2.circle(frame1,(5,5),1,(0,0,255))
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法绘制所有点:
cv2.circle(frame1,Points[:,:],1,(0,0,255))
Run Code Online (Sandbox Code Playgroud)
不过,这会返回此错误:
cv2.circle(frame1,Points[:,:],1,(0,0,255))
SystemError: new style getargs format but argument is not a tuple
Run Code Online (Sandbox Code Playgroud)
我是否应该使用循环来遍历所有点并一一绘制它们?如果是这样,我应该使用哪个循环?或者有什么简单的东西我错过了?
我正在尝试生成一个位于图像上的坐标数组.使用的图像是640x480像素的帧.我已经能够制作一个我希望使用的所有x和y点的数组.我试图在每个点上绘制小圆圈只是为了可视化和以后使用所以我试图将坐标变成可以输入OpenCV圆函数的形式.以下是我到目前为止所得到的:
Ypts = np.arange(5, 480, 5)
Xpts = np.arange(5, 640, 5)
Run Code Online (Sandbox Code Playgroud)
我试过用
[pts]= np.vstack([Xpts, Ypts]).T
Run Code Online (Sandbox Code Playgroud)
和
coordinate = []
for x in range(Xpts.size):
for y in range(Ypts.size):
coordinate.append((x, y))
Run Code Online (Sandbox Code Playgroud)
没有成功,输出我得到的坐标[0, 0], [0, 1], [0, 2], ...有关的价值点,而不是Xpts和Ypts.
在较小的范围内,这是x和y数组的示例:
Xpts = [5, 10, 15, 20, 25, 30, 35]
Ypts = [5, 10, 15]
Run Code Online (Sandbox Code Playgroud)
而我想要得到的答案是:
Points = [[5, 5],
[5, 10],
[5, 15],
[10, 5],
[10, 10],
[10, 15],
[15, 5],
[15, 10], …Run Code Online (Sandbox Code Playgroud) python ×4
arrays ×2
opencv ×2
coordinates ×1
geometry ×1
numpy ×1
opticalflow ×1
package ×1
plot ×1
pycharm ×1
pypi ×1
python-2.7 ×1
repository ×1