Python + Dropbox 打造简易版 WebCam - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
XDash
V2EX    Python

Python + Dropbox 打造简易版 WebCam

  •  
  •   XDash
    xdash 2012 年 3 月 26 日 10498 次点击
    这是一个创建于 5122 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近一阵离职在家休息,终于有相对充裕的时间折腾研究一些感兴趣的东西,比如 Arduino,比如 Python,比如 HTML5,又比如我还领养了一只小仓鼠。

    晚上折腾时发现了 VideoCapture 这个 Python 库,用于获取对视频设备的支持,能通过电脑摄像头捕获视频信号以及截图。联想到平时出门需要了解一下家中仓鼠的动态,于是灵机一动,打算巧借 Dropbox 的力量打造一个 Python 实现的 WebCam。

    原理:利用 Python 调用 VideoCapture 获取摄像头拍到的图像,保存到 Dropbox 的 Public 文件夹下,通过 Dropbox 的自动同步更新这个外链的图片文件,从而实现远程监控的 WebCam 功能。

    准备工作:

    1、始终在线用于监控的带摄像头的电脑一台(USB 外接摄像头也可,我用的仅仅几十块钱);
    2、在上述电脑上运行的 Python 环境;
    3、一个支持外链并且自动同步的网盘,比如 Dropbox,或是其他国内访问无阻的同类产品;
    4、一只被24小时置于摄像头监控范围内的小仓鼠,当然这个可以被任意替代。

    开搞:

    1、本地配置好 Python,我用的是 2.5 (更新的版本可能与当下网络流行的库的兼容性较差),确保能 Hello World 成功。
    2、获取 VideoCapture 库(解压后去 Python25 文件夹把相关文件复制到 Python 程序目录的对应文件夹下)。这是主角。
    3、另外两个配角也不能少:PIL(一个 Python 的图像库,用于保存图片)和 DirectX(一般机器已经自带)。
    4、写代码!我研究仿效的代码来自这个哥们的博文示例( http://blog.csdn.net/dyx1024/article/details/7249811 ),基本可以拿来直接用。但我还是稍微进行了修改,把原来那个无止境的 While True 循环做成了有条件终止的循环,把抓取频次改成了每 5 秒一次(SLEEP_TIME_LOnG= 5)。
    5、把 cam.saveSnapshot 这句里定义的保存路径改为了我的 Dropbox 目录下外链目录 Public 的路径下的固定文件名 WebCam.jpg。

    OK,这就算齐活儿了。运行程序,只见在 C:\Dropbox\Public\webcam\ 下生成了一张来自摄像头的截图,并且每隔 5 秒自动刷新。同时 Dropbox 也会第一时间将其同步到您的网络空间。于是通过形如 http://dl.dropbox.com/u/3876xxx/webcam/WebCam.jpg 的外链地址就可以访问你的摄像头图片了这俨然就是一台低成本的 WebCam。

    (再玩的深入点,什么发微博发推的都能加上,这样就等于给小仓鼠建立了个自动更新状态的个人主页 ^_^)
    19 条回复    1970-01-01 08:00:00 +08:00
    caomu
        1
    caomu  
       2012 年 3 月 26 日 via Android
    cool,我还是想搞一个防盗用,识别图像出现移动物体就短信什么的。。。
    话说这个可以和rhome等最后弄成一个开源的智能家居方案体系。
    zhuzhuor
        2
    zhuzhuor  
       2012 年 3 月 26 日
    不错,好玩
    另外当心dropbox上传到了limit。。。不行了可以换什么upyun(虽然我自己也没用过。。)

    写个网页,每隔几秒自动刷新图片就更好玩了
    itommy
        3
    itommy  
       2012 年 3 月 26 日
    这个hack也太有酷了吧!
    gavingeng
        4
    gavingeng  
       2012 年 3 月 26 日
    费电......
    技术宅......
    holmesabc
        5
    holmesabc  
       2012 年 3 月 26 日
    用微薄发图嘛
    更有意思
    sunshineg
        6
    sunshineg  
       2012 年 3 月 26 日
    cool~!!!

    最近也打算休个假 -,-
    sunshinewu85
        7
    sunshinewu85  
       2012 年 3 月 26 日
    我勒个去!!这艺术源于生活,这码子也是啊!~
    sun019
        8
    sun019  
       2012 年 3 月 26 日
    yeah 这个好玩 刚看你微博上说这事儿了
    alai
        9
    alai  
       2012 年 3 月 26 日
    既然都Arduino了 不妨在加上一个远程看护的功能
    python监视dropbox指定文件夹
    上传文件 触发蓝牙或者wifi信号
    Arduino过去给他按给食或给水口
    hewigovens
        10
    hewigovens  
       2012 年 3 月 26 日
    @alai 好像没用到Arduino,“始终在线用于监控的带摄像头的电脑一台”
    XDash
        11
    XDash  
    OP
       2012 年 3 月 26 日 via iPad
    @sunshineg 你也要休假式治疗啊,打算休多久?
    XDash
        12
    XDash  
    OP
       2012 年 3 月 26 日 via iPad
    @gavingeng 很多人家里电脑本身就是二十四小时开着的吧。。
    sunshineg
        13
    sunshineg  
       2012 年 3 月 26 日
    @XDash 我也就一周了,打算4月中旬去青岛那边...
    alai
        14
    alai  
       2012 年 3 月 26 日
    @hewigovens 既然都有Arduino
    tylr
        15
    tylr  
       2012 年 3 月 26 日
    赞!我也打算去试下,买台超小电脑配摄像头监控我家的狗仔哈~
    XDash
        16
    XDash  
    OP
       2012 年 3 月 26 日
    @tylr 专门买台电脑啊
    tylr
        17
    tylr  
       2012 年 3 月 26 日
    @XDash 狗窝在阳台上,得买台小点的哈
    kojp
        18
    kojp  
       2012 年 3 月 26 日
    宅男+仓鼠,真费电!

    真的好帅!
    caoyue
        19
    caoyue  
       2012 年 3 月 26 日
    Lifehack,很赞啊!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2668 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 07:10 PVG 15:10 LAX 00:10 JFK 03:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86