我开始开发自动网络摄像头应用程序。目标是自动拍照,进行一些图像处理,然后将结果上传到FTP站点。所有这些任务看起来都很简单。
但是,我很难找到一个像样的相机。我不想使用简单的网络摄像头或高清摄像头,因为静止帧的图像质量不是很好。 我也很难找到一款价格实惠的数码相机,支持USB快照或控制。
我的第二个问题是发展本身。我不太确定使用哪种编程语言。我有AS3,Processing,Java和一些简单的C ++和Open CV的经验。
你有线索吗?
答案 0 :(得分:1)
关于相机,你可以找到相当不错的网络摄像头,其中一些具有高清品质。看看罗技上的摄像头(我测试了他们的API,这是相当不错的),高清摄像头的零售价为99美元,非常便宜。如果你正在寻找更好的东西,我会选择尼康,因为他们也有很好的C#/ C ++ API。只需500美元即可获得带有简单28mm镜头的基本单反相机。不要使用PowerShot,因为尼康停止支持他们的API。无论您决定购买哪种相机,都要确保有适当的API,维护并免费。
关于开发,我会使用C#/ Java,因为它们比C ++更容易。有很多用于C#/ Java图像处理的库,只需确保相机附带适合您所选语言的API。
祝你好运。答案 1 :(得分:0)
通常(根据经验)大多数通过Windows显示为成像设备的USB相机可以与JAI [Java Advanced Imaging]一起使用。另外[在.net / c ++端],可以通过DirectShow将相同的摄像头用作捕获设备。 Java / C#将使开发更容易,但预计会失去一些性能[即使是最好的优化]。此外,您只能执行摄像机的速度和从摄像机到计算机的数据线[USB1.0将严重限制正常的帧速率]
答案 2 :(得分:0)
首先在RAM中获取图像:
如果您正在使用CHDK,我建议您使用CHDK支持的脚本语言将图像从相机存储器复制到RAM - 您可以从CHDK论坛http://chdk.setepontos.com/index.php获取帮助。
或者如果这很困难,你可以连续将图像复制到硬盘并从那里加载到RAM中。 (您需要在短时间内注意(删除)硬盘上累积的大量图像!)
这听起来像是一种“蛮力”的方法,但在你正在研究正确的方法时会让你的工作继续下去。
执行图像处理:
一旦图像在RAM中,您可以像往常一样应用图像处理算法,例如使用opencv库。
希望这可以帮助你