我试图使用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个点.实际发生的是窗口弹出第一个点显示(确定),然后在填充图表的其余部分之前等待循环完成.
有什么想法,为什么我没有看到一次填充一个点?
我希望在我的绘图上同时获得水平和垂直网格线,但默认情况下只显示水平网格线.我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)
有什么建议?

将JS加载到文档底部有什么好处(如果有的话),而不是顶部.似乎页面加载和JS依赖功能有一个短暂的延迟.
我正在使用html5boilerplate来开始我的所有模板,但我不确定在底部加载JS有多么有用.
它真的会带来很大的不同吗?如果是的话,为什么呢?
我正在处理一个大型数据集,其中一些行包含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 - 是否有类似的命令来删除空白?
这是一个新手问题:
一个类是一个对象,所以我可以创建一个被调用的类pippo(),在这个add函数和参数内部,我不明白pippo当我分配时,里面的函数是从上到下执行x=pippo()还是我必须在x.dosomething()外面调用它们pippo.
使用Python的多处理包,最好定义一个大函数并使用target调用中的参数创建对象Process(),还是通过继承Process类来创建自己的进程类?
我正在尝试使用导入的模块实例化对象。为了使这些导入过程安全(因为我在 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) 我正在努力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) 我有一个在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制作环境光系统.我已经获得了pyscreenshot以正确保存截图,但我无法弄清楚如何将其截屏我的第二台显示器(如果这是可能的话).
有没有办法使用pyscreenshot(或其他东西)在Python中截取我的第二台显示器的屏幕截图?我正在使用OSX优胜美地,如果这有任何区别.
我的目标是检测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 ×8
matplotlib ×2
opencv ×2
apache ×1
class ×1
dataframe ×1
flask ×1
html ×1
html5 ×1
javascript ×1
jquery ×1
macos ×1
missing-data ×1
pandas ×1
r ×1
real-time ×1
screenshot ×1
stereo-3d ×1
termination ×1
while-loop ×1
windows ×1