【问题标题】:Automated Webcam Application / Hardware Problems自动网络摄像头应用程序/硬件问题
【发布时间】:2010-10-07 22:18:38
【问题描述】:

我开始开发一个自动化的网络摄像头应用程序。目标是自动拍照,进行一些图像处理,然后将结果上传到 FTP 站点。所有这些任务看起来都很简单。

但是,我很难找到一台像样的相机。我不想使用简单的网络摄像头或高清网络摄像头,因为静止帧的图像质量不是很好。 我也很难找到支持 USB 快照或控制的经济实惠的数码相机。

我的第二个担忧是开发本身。我不太确定要使用哪种编程语言。我有 AS3、Processing、Java 和一些简单的 C++ 和 Open CV 方面的经验。

你有线索吗?

【问题讨论】:

    标签: image-processing webcam


    【解决方案1】:

    关于摄像头,您可以找到相当不错的网络摄像头,其中一些具有高清画质。看看 Logitech 上的摄像头(我测试了他们的 API,它非常好),高清摄像头的零售价为 99 美元,非常便宜。如果您正在寻找更好的东西,我会选择尼康,因为他们也有一个非常好的 C#/C++ API。你可以花 500 美元买到带有简单 28 毫米镜头的基本单反相机。不要使用 PowerShot,因为 Nikon 停止支持他们的 API。无论您决定购买何种相机,请确保提供适当的 API、正在维护且免费。

    关于开发,我会选择 C#/Java,因为它们比 C++ 更容易。有很多用于 C#/Java 图像处理的库,只需确保相机附带适合您选择的语言的 API。

    祝你好运。

    【讨论】:

    • 你能发布到 Logitech API 的链接吗?我买了 C910 型号,没有看到任何 API,只有他们的“封闭”软件——“罗技网络摄像头软件”。或者,使用DirectShow 不会给你高清。甚至当我尝试 Microsoft Expression 时,我也没有从这个网络摄像头获得真正的高清。
    • 一切都取决于您需要的质量。大多数(所有)网络摄像头都倾向于在摄像头端压缩图像,因此它可以正确地通过 USB 以足够快的速度播放视频。如果您想要未压缩的数据,您将不得不走得更远并投资更多 $$$。网络摄像头项目已经过去几年了,我找不到 API,我怀疑它是否适用于较新的摄像头。
    【解决方案2】:

    通常(根据经验)大多数通过 Windows 显示为成像设备的 USB 相机都可以与 JAI [Java Advanced Imaging] 一起使用。此外[在 .net/c++ 方面],可以通过 DirectShow 将相同的摄像机用作捕获设备。 Java/C# 将使开发更容易,但预计会失去一些性能[即使是最好的优化]。此外,您只能执行相机的速度以及从相机到计算机的数据线[USB1.0会严重限制体面的帧率]

    【讨论】:

    • 谢谢,但我正在尝试用 CHDK 解决它,因为我已经有了硬件
    【解决方案3】:

    首先在 RAM 中获取图像:
    如果您使用的是 CHDK,我建议您使用 CHDK 支持的脚本语言将图像从相机内存复制到 RAM - 您可以从 CHDK 论坛http://chdk.setepontos.com/index.php 获得帮助。

    或者,如果这很困难,您可以将图像连续复制到硬盘并从那里加载到 RAM 中。 (您需要在短时间内处理(删除)堆积在硬盘上的大量图像!)
    这听起来像是一种“蛮力”方法,但可以在您进行研究的同时让您的工作继续进行正确的方法。

    执行图像处理:
    一旦图像在 RAM 中,您可以像往常一样应用图像处理算法,例如使用 opencv 库。

    希望对你有帮助

    【讨论】:

    • 感谢您的回答。我会检查一下。
    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多