用 Java 或 Python 从我的网络摄像头捕获单个图像

新手上路,请多包涵

我想从我的网络摄像头捕获单个图像并将其保存到磁盘。我想用 Java 或 Python(最好是 Java)执行此操作。我想要可以在 64 位 Win7 和 32 位 Linux 上运行的东西。

编辑:我使用 Python 3.x,而不是 2.x

因为在其他任何地方我都看到这个问题要求人们设法弄糊涂,所以我要明确说明一些事情:

  • 我不想使用处理
  • 我不想使用上述以外的任何语言
  • 我确实想以任何方式、形状或形式在我的屏幕上显示此图像
  • 我不想在我的屏幕上显示来自我的网络摄像头的实时视频提要,或将这样的提要保存到我的硬盘驱动器
  • Java 媒体框架太过时了。不要建议它。
  • 我宁愿不使用 JavaCV,但如果绝对必须,我想确切地知道我需要 OpenCV 库中的哪些文件,以及如何在不包含整个库的情况下使用这些文件(最好不要将这些文件粘贴在任何类型的文件中) PATH。一切都应该包含在一个目录中)
  • 如果需要,我可以在 64 位 Win7 计算机上使用 Eclipse,但我也必须能够在 32 位 Linux 上编译和使用它
  • 如果你认为我可能知道或不知道与这个主题相关的任何形式或形式的东西,请假设我不知道,并告诉我

EDIT2:我能够使用 Python 2.7 和 pygame 1.9.1 在 Linux 上运行 Froyo 的 pygame 示例。 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 的解决方案。

原文由 Matthew G 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 397
2 个回答

在 Windows 上,使用 pygame 可以很容易地与您的网络摄像头进行交互:

 from VideoCapture import Device
cam = Device()
cam.saveSnapshot('image.jpg')

我还没有尝试在 linux 上使用 pygame(我所有的 linux boxen 都是没有 X 的服务器),但是这个链接可能会有帮助 http://www.jperla.com/blog/post/capturing-frames-from-a-webcam-在Linux上

原文由 thebjorn 发布,翻译遵循 CC BY-SA 3.0 许可协议

@thebjorn 给出了很好的答案。但如果你想要更多的选择,你可以试试 OpenCV、SimpleCV。

使用 SimpleCV (python3.x 不支持):

 from SimpleCV import Image, Camera

cam = Camera()
img = cam.getImage()
img.save("filename.jpg")

使用 OpenCV

 from cv2 import *
# initialize the camera
cam = VideoCapture(0)   # 0 -> index of camera
s, img = cam.read()
if s:    # frame captured without any errors
    namedWindow("cam-test",CV_WINDOW_AUTOSIZE)
    imshow("cam-test",img)
    waitKey(0)
    destroyWindow("cam-test")
    imwrite("filename.jpg",img) #save image

使用 pygame

 import pygame
import pygame.camera

pygame.camera.init()
pygame.camera.list_cameras() #Camera detected or not
cam = pygame.camera.Camera("/dev/video0",(640,480))
cam.start()
img = cam.get_image()
pygame.image.save(img,"filename.jpg")

安装 OpenCV

 install python-opencv bindings, numpy

安装 SimpleCV

 install python-opencv, pygame, numpy, scipy, simplecv

获取最新版本的 SimpleCV

安装 pygame

 install pygame

原文由 Froyo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题