小编Vel*_*ker的帖子

如何使用matplotlib在while循环中实时绘图?

我试图使用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个点.实际发生的是窗口弹出第一个点显示(确定),然后在填充图表的其余部分之前等待循环完成.

有什么想法,为什么我没有看到一次填充一个点?

python real-time matplotlib while-loop

211
推荐指数
11
解决办法
44万
查看次数

使垂直网格线出现在matplotlib中的折线图中

我希望在我的绘图上同时获得水平和垂直网格线,但默认情况下只显示水平网格线.我pandas.DataFrame在python中使用一个sql查询来生成一个带有x轴日期的线图.我不确定为什么他们没有出现在日期,我试图寻找答案,但找不到.

我用来绘制图形的所有内容都是下面的简单代码.

data.plot()
grid('on')
Run Code Online (Sandbox Code Playgroud)

data是DataFrame,它包含sql查询中的日期和数据.

我也试过添加下面的代码,但我仍然得到相同的输出没有垂直网格线.

ax = plt.axes()        
ax.yaxis.grid() # horizontal lines
ax.xaxis.grid() # vertical lines
Run Code Online (Sandbox Code Playgroud)

有什么建议?

在此输入图像描述

python matplotlib pandas

83
推荐指数
5
解决办法
11万
查看次数

在底部而不是文档顶部加载JS的好处

将JS加载到文档底部有什么好处(如果有的话),而不是顶部.似乎页面加载和JS依赖功能有一个短暂的延迟.

我正在使用html5boilerplate来开始我的所有模板,但我不确定在底部加载JS有多么有用.

它真的会带来很大的不同吗?如果是的话,为什么呢?

html javascript jquery html5

58
推荐指数
3
解决办法
4万
查看次数

删除一个特定列中包含空值的行

我正在处理一个大型数据集,其中一些行包含NA,另一些包含空白:

df <- data.frame(ID = c(1:7),                                   
         home_pc = c("","CB4 2DT", "NE5 7TH", "BY5 8IB", "DH4 6PB","MP9 7GH","KN4 5GH"),               
         start_pc = c(NA,"Home", "FC5 7YH","Home", "CB3 5TH", "BV6 5PB",NA),               
         end_pc = c(NA,"CB5 4FG","Home","","Home","",NA))
Run Code Online (Sandbox Code Playgroud)

如何一次性删除NA和空白(在start_pc和end_pc列中)?我过去曾用过:

df<- df[-which(is.na(df$start_pc)), ]
Run Code Online (Sandbox Code Playgroud)

...删除NA - 是否有类似的命令来删除空白?

r missing-data dataframe

54
推荐指数
5
解决办法
13万
查看次数

使用Python的multiprocessing.Process类

这是一个新手问题:

一个类是一个对象,所以我可以创建一个被调用的类pippo(),在这个add函数和参数内部,我不明白pippo当我分配时,里面的函数是从上到下执行x=pippo()还是我必须在x.dosomething()外面调用它们pippo.

使用Python的多处理包,最好定义一个大函数并使用target调用中的参数创建对象Process(),还是通过继承Process类来创建自己的进程类?

python class multiprocessing

13
推荐指数
1
解决办法
2万
查看次数

如何使用Python多处理模块避免双重导入?

我正在尝试使用导入的模块实例化对象。为了使这些导入过程安全(因为我在 Windows 上),我使用了块import内的语句if __name__ == '__main__':

我的文件看起来有点像这样:

主要.py

# main.py

from multiprocessing import Process

# target func for new process
def init_child(foo_obj, bar_obj):
  pass

if __name__ == "__main__":
  # protect imports from child process
  from foo import getFoo
  from bar import getBar

  # get new objects
  foo_obj = getFoo()
  bar_obj = getBar()

  # start new process
  child_p = Process(target=init_child, args=(foo_obj, bar_obj))
  child_p.start()
  # Wait for process to join
  child_p.join()
Run Code Online (Sandbox Code Playgroud)

foo.py

# foo.py
import os

print 'Foo …
Run Code Online (Sandbox Code Playgroud)

python windows multiprocessing python-import

10
推荐指数
1
解决办法
1542
查看次数

Python - 从旋转角度对OpenCV进行透视变换

我正在努力depth map with OpenCV.我可以获得它,但它是从左相机原点重建的,后者有一点倾斜,如图所示,深度"移位"(深度应该接近,没有水平渐变):

在此输入图像描述

我想以零角度表达它,我尝试使用warp透视函数,如下所示,但我获得了一个空字段...

P = np.dot(cam,np.dot(Transl,np.dot(Rot,A1)))

dst = cv2.warpPerspective(depth, P, (2048, 2048))
Run Code Online (Sandbox Code Playgroud)

用:

#Projection 2D -> 3D matrix
A1 = np.zeros((4,3))
A1[0,0] = 1 
A1[0,2] = -1024
A1[1,1] = 1
A1[1,2] = -1024
A1[3,2] = 1

#Rotation matrice around the Y axis
theta = np.deg2rad(5) 
Rot = np.zeros((4,4))
Rot[0,0] = np.cos(theta)
Rot[0,2] = -np.sin(theta)
Rot[1,1] = 1
Rot[2,0] = np.sin(theta)
Rot[2,2] = np.cos(theta)
Rot[3,3] = 1

#Translation matrix on the X axis 
dist = 0
Transl …
Run Code Online (Sandbox Code Playgroud)

python opencv stereo-3d perspectivecamera

9
推荐指数
1
解决办法
1506
查看次数

Apache终止Flask进程时如何调用函数?

我有一个在Apache HTTPD后面运行的Flask应用程序.Apache配置为具有多个子进程.

Flask应用程序在服务器上创建一个文件,其文件名称等于其进程ID.代码看起来像这样:

import os

@app.before_first_request
def before_first_request():
    filename = os.getpid()
    with open(filename, 'w') as file:
        file.write('Hello')
Run Code Online (Sandbox Code Playgroud)

当子进程被终止/结束/终止时,我希望Flask应用程序删除此文件.

删除文件并不是非常重要,因为这些文件不会占用太多空间,因此如果发生奇怪的错误,我不需要处理它们.但是对于正常的工作流程,我希望在Apache关闭Flask进程时进行一些清理.

有关最佳方法的任何想法吗?

python apache termination flask

8
推荐指数
1
解决办法
1684
查看次数

在OSX上使用python截取第二台显示器的屏幕截图

我正在尝试用Python制作环境光系统.我已经获得了pyscreenshot以正确保存截图,但我无法弄清楚如何将其截屏我的第二台显示器(如果这是可能的话).

有没有办法使用pyscreenshot(或其他东西)在Python中截取我的第二台显示器的屏幕截图?我正在使用OSX优胜美地,如果这有任何区别.

python macos screenshot

7
推荐指数
1
解决办法
663
查看次数

OpenCV检测python中的运动

我的目标是检测IP摄像机流上特定区域的移动.我设法编写了工作代码,但这是基于我个人的理解.

import cv2
import numpy as np
import os
import time
import datetime
import urllib
import pynotify

stream=urllib.urlopen('http://user:pass@192.168.198.120/video.mjpg')
bytes=''
fgbg = cv2.createBackgroundSubtractorMOG2()

while True:
    bytes+=stream.read(16384)
    a = bytes.find('\xff\xd8')
    b = bytes.find('\xff\xd9')
    if a!=-1 and b!=-1:
        jpg = bytes[a:b+2]
        bytes= bytes[b+2:]
        img = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.IMREAD_COLOR)
        rows,cols,c = img.shape
        mask = np.zeros(img.shape, dtype=np.uint8)
        roi_corners = np.array([[(940,220),(1080,240), (1080,310), (940,290)]], dtype=np.int32)
        channel_count = img.shape[2]
        ignore_mask_color = (255,)*channel_count
        cv2.fillPoly(mask, roi_corners, ignore_mask_color)
        masked_image = cv2.bitwise_and(img, mask)

        fgmask = fgbg.apply(masked_image)
        iii = fgmask[220:310,940:1080]

        hist,bins = np.histogram(iii.ravel(),256,[0,256])

        black, …
Run Code Online (Sandbox Code Playgroud)

python opencv motion-detection

7
推荐指数
1
解决办法
5046
查看次数