我试图使用OpenCV实时绘制来自摄像机的一些数据.但是,实时绘图(使用matplotlib)似乎不起作用.
我把这个问题分成了这个简单的例子:
fig = plt.figure()
plt.axis([0, 1000, 0, 1])
i = 0
x = list()
y = list()
while i < 1000:
temp_y = np.random.random()
x.append(i)
y.append(temp_y)
plt.scatter(i, temp_y)
i += 1
plt.show()
Run Code Online (Sandbox Code Playgroud)
我希望这个例子可以单独绘制1000个点.实际发生的是窗口弹出第一个点显示(确定),然后在填充图表的其余部分之前等待循环完成.
有什么想法,为什么我没有看到一次填充一个点?
看起来像Numpy的唯一64位Windows安装程序是Numpy版本1.3.0,它只适用于Python 2.6
http://sourceforge.net/projects/numpy/files/NumPy/
令我感到奇怪的是,我必须回滚到Python 2.6才能在Windows上使用Numpy,这让我觉得我错过了一些东西.
我呢?
我正在读取串行数据并使用while循环写入csv文件.我希望用户能够在他们认为已经收集到足够的数据后杀死while循环.
while True:
#do a bunch of serial stuff
#if the user presses the 'esc' or 'return' key:
break
Run Code Online (Sandbox Code Playgroud)
我使用opencv做了类似的事情,但它似乎没有在这个应用程序中工作(我真的不想为此函数导入opencv)...
# Listen for ESC or ENTER key
c = cv.WaitKey(7) % 0x100
if c == 27 or c == 10:
break
Run Code Online (Sandbox Code Playgroud)
所以.如何让用户摆脱循环?
另外,我不想使用键盘中断,因为脚本需要在while循环终止后继续运行.
我开始使用numpy数组图像.
In[1]:img = cv2.imread('test.jpg')
Run Code Online (Sandbox Code Playgroud)
形状是您对640x480 RGB图像的期望.
In[2]:img.shape
Out[2]: (480, 640, 3)
Run Code Online (Sandbox Code Playgroud)
但是,我拥有的这个图像是一个100帧长的视频帧.理想情况下,我希望有一个包含此视频中所有数据的单个数组,以便img.shape返回(480, 640, 3, 100).
将下一帧(即下一组图像数据,另一个480 x 640 x 3阵列)添加到我的初始阵列的最佳方法是什么?
我有一个本地视频文件(一个.avi,但可以转换),我想展示一个客户端(即它是私人的,不能发布到网络上),但我无法弄清楚如何在IPython笔记本中播放它.
经过一番谷歌搜索后,似乎HTML5视频标签可能就行了,但我不知道任何HTML,也无法让它发挥.
关于如何嵌入这个的任何想法?
我似乎找不到有关使用matplotlib在3d图像中缩放轴的能力的文档.
例如,我有图像:
并且轴具有不同的尺度.我希望他们是统一的.
我试图将变量设置为零,所以它目前看起来像这样
x1,y1,x2,y2=(0,0,0,0)
Run Code Online (Sandbox Code Playgroud)
它有效,但似乎有点多余.有更干净的方式吗?
为了让您了解我正在寻找的东西,它看起来像这样:
到目前为止,我已经将matplotlib用于我的所有绘图,并且时间并不重要(它已经在后期处理中完成).
我想知道除了将我的数据向左移动并重新绘制整个图之外,是否有更轻的重量绘图方式.
我从命令行获得了一系列命令,我称之为某些实用程序.特别:
root@beaglebone:~# canconfig can0 bitrate 50000 ctrlmode triple-sampling on loopback on
root@beaglebone:~# cansend can0 -i 0x10 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
root@beaglebone:~# cansequence can0 -p
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚(或找到明确的文档)是我如何写一个python脚本来发送这些命令.我之前没有使用过os模块,但怀疑也许这就是我应该看的地方?
我正在我的流星项目中使用autoform并在我的表单中使用afArrayFieldfor my dimensionsfield NewStack.
它目前看起来像这样.
以下是它的呈现方式:
NewStack.html
<template name="NewStack">
<div class="new-stack-container">
{{#autoForm collection=stacks id="insertStackForm" type="method" meteormethod="createStack" class="new-stack-form"}}
<fieldset>
<legend>Add a Stack!</legend>
{{> afQuickField name='desc'}}
{{> afArrayField name='dimensions'}}
</fieldset>
<button type="submit" class="btn btn-primary">Insert</button>
{{/autoForm}}
</div>
</template>
Run Code Online (Sandbox Code Playgroud)
我希望看到每个维度的字段是填充了我在模式设置的选项下拉(即dim1,dim2和dim3).但是我似乎无法将表单呈现为除纯文本输入之外的任何内容.
Stacks.js
StackSchema = new SimpleSchema({
desc: {
type: String,
label: "Description"
},
dimensions: {
type: [String],
autoform: {
type: "select",
afFieldInput: {
options: [
{label: "dim1", value: 1},
{label: "dim2", value: 2},
{label: "dim3", …Run Code Online (Sandbox Code Playgroud) python ×8
matplotlib ×3
numpy ×3
while-loop ×2
arrays ×1
break ×1
html5-video ×1
ipython ×1
linux ×1
meteor ×1
meteor-blaze ×1
opencv ×1
python-2.7 ×1
real-time ×1
windows ×1