jjzjj

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

coder 2023-05-15 原文

我想从我的网络摄像头捕获一张图像并将其保存到磁盘。我想用 Java 或 Python(最好是 Java)来做这件事。我想要可以在 64 位 Win7 和 32 位 Linux 上运行的东西。

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

因为我在其他任何地方看到这个问题被问到人们都会感到困惑,所以我要明确说明几件事:

  • 我不想使用处理
  • 我不想使用上述以外的任何语言
  • 我确实想以任何方式、形状或形式在我的屏幕上显示此图像
  • 我不想在我的屏幕上显示来 self 的网络摄像头的实时视频源,或者将此类源保存到我的硬盘中
  • 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() 方法 3 次,然后我应该在第一对调用中获取的图像实际被保存。他们似乎被困在一个奇怪的缓冲区中。基本上,每次我想捕获图像时,我不得不调用它三次,而不是调用一次 cam.get_image()。然后我才调用 pygame.image.save()。

不幸的是,如下所述,pygame.camera 仅在 Linux 上受支持。我仍然没有适用于 Windows 的解决方案。

最佳答案

@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

关于java - 用 Java 或 Python 从我的网络摄像头捕获单个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11094481/

有关java - 用 Java 或 Python 从我的网络摄像头捕获单个图像的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  3. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  4. ruby - 我可以将我的 README.textile 以正确的格式放入我的 RDoc 中吗? - 2

    我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:

  5. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  6. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  7. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  8. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  9. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  10. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

随机推荐