![](/img/trans.png)
[英]SimpleCv - IOError("cannot identify image file") - from JpegStreamCamera() - IP Webcam for Android
[英]SimpleCV webcam black image
我需要从网络摄像头拍摄一张快照。 我选择SimpleCV来完成这项任务。
现在我尝试获取单个图像并显示它:
from SimpleCV import Camera
cam = Camera()
img = cam.getImage()
img.show()
但我只看到黑色图像。 我认为此时相机还没有准备好,因为如果我在cam.getImage()
之前cam.getImage()
time.sleep(10)
cam.getImage()
一切都很好。
这是正确的方法吗? 谢谢!
你安装了PIL吗? 我有类似的问题,但在安装PIL一切正常。 希望这可以帮助。
您可以从Pythonware下载PIL
我遇到了同样的问题,并提出了以下解决方法。 基本上它抓取一个图像,测试中间像素,看它是否是黑色(0,0,0)。 如果是,则等待1秒钟再次尝试。
import time
from SimpleCV import Camera
cam = Camera()
r = g = b = 0
while r + g + b < 0.01:
img = cam.getImage()
r, g, b = img[img.width/2, img.height/2]
print("r: {} g: {} b: {}".format(r,g,b))
time.sleep(1)
img.save(file_name)
您的问题可能是,当脚本结束时,相机对象似乎不会释放其他程序的网络摄像头。 当您等待运行脚本时,Windows将其释放(可能?),以便它可以再次运行。 如果您使用它,旧脚本仍然认为它拥有网络摄像头,它显示为黑色。 无论如何, 这里的解决方案似乎有效。 将“del cam”添加到脚本的末尾,这将使相机对象消失,让您再次使用相机。
尝试这个
来自SimpleCV导入Camera cam = Camera(0)而True:img = cam.getImage()img.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.