我想从我的网络摄像头捕获单个图像并将其保存到磁盘.我想用Java或Python(最好是Java)来做这件事.我想要一些适用于64位Win7和32位Linux的东西.
编辑:我使用Python 3.x,而不是2.x.
因为在其他任何地方我都看到这个问题让人们感到困惑,我将明确陈述一些事情:
EDIT2:我能够使用Python 2.7和pygame 1.9.1让Froyo的pygame示例在Linux上运行.pygame.camera.camera_list()调用不起作用,但对于示例的其余部分则没有必要.但是,我不得不调用cam.set_controls()(你可以在这里找到http://www.pygame.org/docs/ref/camera.html的文档)来提高亮度,这样我才真正看到了我捕获的图像.
此外,我需要调用cam.get_image()和pygame.image.save()方法三次,然后我认为第一对调用的图像实际上被保存了.他们似乎陷入了一个奇怪的缓冲区.基本上,我不是一次调用cam.get_image(),而是每次想要捕获图像时都要调用它三次.然后我才调用pygame.image.save().
不幸的是,如下所述,pygame.camera仅在Linux上受支持.我仍然没有Windows的解决方案.
我正在使用wxPython工具包设计GUI,这意味着它是用python2编写的.但是,我想将python3用于实际的应用程序代码.我如何从GUI调用我的python3代码?
通常当你在git仓库中运行这样的东西时:
git checkout abc1234
Run Code Online (Sandbox Code Playgroud)
你最终处于一个独立的HEAD状态.如果你运行git branch
,输出将如下所示:
* (detached from abc1234)
master
Run Code Online (Sandbox Code Playgroud)
这是很好的预期行为.
我最近一直在玩pygit2,并且遇到过我以前没见过的东西.假设我做了以下事情:
repo = pygit2.discover_repository("/path/to/repo")
repo.head = "abc1234"
Run Code Online (Sandbox Code Playgroud)
我希望存储库处于独立的HEAD状态.出于所有意图和目的,我相信它是在这样做之后.但是,输出git branch
看起来有点不同:
* (no branch)
master
Run Code Online (Sandbox Code Playgroud)
有谁知道有什么区别,为什么会有差异,这意味着什么?
编辑:
下面是使用pygit2克隆存储库后的reflog,为repo.head分配提交SHA1哈希,然后运行git checkout master
,然后运行git checkout myhash
:
69df316 HEAD@{0}: checkout: moving from master to 69df3161f315e9b13ba4bd811635c11f67616598
d6ece61 HEAD@{1}: checkout: moving from 69df3161f315e9b13ba4bd811635c11f67616598 to master
69df316 HEAD@{2}:
d6ece61 HEAD@{3}: clone: from file:///path/to/repo
Run Code Online (Sandbox Code Playgroud) 标题基本上说明了一切.如果我使用特定条件和互斥锁调用pthread_cond_wait,那么该线程是否会被阻塞,直到用相应的条件调用pthread_cond_signal?或者无论是否随后再次解锁互斥锁,它都会解锁?
如果答案是前者,我会进行跟进.我有一个队列用于我的线程之间的消息传递.我想确保一次只有一个线程可以将一个项目附加到队列中(因此使用互斥锁).没有任何线程知道是否有任何其他线程将等待自己持有互斥锁.
尝试将项目附加到队列时,我锁定互斥锁,等待队列没有填满pthread条件,然后执行追加,然后解锁互斥锁.在解锁之前,我应该执行pthread_cond_signal,即使我不知道是否还有其他线程在等待?如果多个线程在等待会发生什么?
python ×2
c ×1
git ×1
git-branch ×1
java ×1
javacv ×1
libgit2 ×1
pthreads ×1
pygit2 ×1
python-2.7 ×1
python-3.x ×1
webcam ×1