【发布时间】:2012-06-23 03:53:13
【问题描述】:
我想用 Python 编写一个程序,它可以从网络摄像头获取视频输入并显示它。而且我还希望程序能够识别颜色。所以程序可以识别所有红色的位置。这可以用 Python 实现吗?
我可以为此使用哪些库?如果不可能,是否有更好的语言可以用于此?
我正在为 Linux 制作这个程序。
【问题讨论】:
我想用 Python 编写一个程序,它可以从网络摄像头获取视频输入并显示它。而且我还希望程序能够识别颜色。所以程序可以识别所有红色的位置。这可以用 Python 实现吗?
我可以为此使用哪些库?如果不可能,是否有更好的语言可以用于此?
我正在为 Linux 制作这个程序。
【问题讨论】:
然后 OpenCV 是要走的路,http://opencv.willowgarage.com/wiki/InstallGuide,这也可能对你有帮助 Displaying a webcam feed using OpenCV and Python
And I also want the program to be able to identify colors. 我不建议在 python 中原生地进行图像处理,因为它可能非常密集,numpy 非常适合一般的数字运算,PIL 专注于图像。
在大多数情况下,屏幕截图将被视为 3d 矩阵image[xloc][yloc][rgbcolor],具体取决于 opencv 返回的格式。如果您想检查红色,那么只需检查image[xloc][yloc][red] 是 255 或接近该值的值,以查看您正在寻找什么样的强度,而其他两种颜色为零或低,即红色,但尝试使用numpy 中的矩阵运算符,python 中的标准 for 循环将花费相当长的时间。
【讨论】:
OpenCV 有一个 Python 接口。
请参阅 Stack Overflow 问题 Displaying a webcam feed using OpenCV and Python,了解捕获网络摄像头数据并将其显示在窗口中的入门程序。
【讨论】: