首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用摄像机分析车库门的状况

用摄像机分析车库门的状况
EN

Stack Overflow用户
提问于 2020-05-19 19:24:24
回答 1查看 45关注 0票数 0

我的想法是使用我的IP摄像头的图像,注册如果我的车库门是打开或关闭(甚至可能在两者之间)。我想把一些可识别的标记放在门上很简单,然后“读”它们的位置程序,但我没有图像处理方面的经验,因此不知道它叫什么。经过大量阅读,我猜我需要在某种程度上使用Emgu (我正在用C#编写代码)。

有人能为我指明正确的方向开始吗?什么是正确的方法,我正在努力实现?斑点追踪?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-26 22:50:51

我知道这很古老,但我最近恰好做到了这一点。

我有一个旧的智能手机,我可以远程启用LED闪光灯+拍照并下载。我在车库门的特定位置上安装了一个闪亮的反光镜,智能手机被钻到墙上。

我是用python实现的。我通过HTTP下载图片,经过几次尝试后,我确定了在哪里裁剪完整的图片。然后,我计算亮度,这往往表明一个有效的检测超过150 (通常是200当反射器在这里,130当它不是亮着,10当反射器不在这里,灯是关闭的)。

代码语言:javascript
复制
def loadFromCam(url):
    print("GET " + baseUrl + url)
    return requests.get(baseUrl + url, timeout=(10,10))

def brightness(im):
    stat = ImageStat.Stat(im)
    return stat.rms[0]

def loadImage():
    response = loadFromCam("cam/1/frame.jpg")
    f = open(destination + 'frame.jpg', 'wb')
    f.write(response.content)
    f.close()
    return Image.open(BytesIO(response.content))

def cropImage(img):
    left = 365
    top = 400
    right = 410
    bottom = 435

    return img.crop((left, top, right, bottom))

def toggleLed():
    loadFromCam("cam/1/led_toggle")

然后是如何使用的:

代码语言:javascript
复制
toggleLed()
time.sleep(0.1)
image = loadImage()
toggleLed()

crop = cropImage(image)
crop.save(destination + "crop.jpg")
print("brightness:", brightness(crop))

结果是两个文件(完整的图片和裁剪)和亮度。

注意:我刚刚开始使用Python,所以这可能很难看,也可能不是推荐的做法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61899111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档