歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python:通過攝像頭抓取圖像並自動上傳至新浪微博

Python:通過攝像頭抓取圖像並自動上傳至新浪微博

日期:2017/3/1 10:32:31   编辑:Linux編程
通過上一篇文章Python:通過攝像頭實現的監控功能》見 http://www.linuxidc.com/Linux/2012-02/54206.htm,突然想到將每次采集到的圖片可以直接上傳至微博,然後可以通過手機准實時查看要監控的地方,實現思路如下:

a.程序A 每30s通過攝像頭采集一次圖像,並保存;

b.程序B也是每30s將采集到的圖片上傳至新浪微博;

實現如下:

1. 采集圖像程序A:

[python]
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from VideoCapture import Device
  4. import time
  5. #最多保存5張抓取到的圖片,超過5張,覆蓋最早的那一張,依次循環
  6. MAX_PIC_NUM = 5
  7. #抓取頻率,30秒抓取一次
  8. SLEEP_TIME_LONG = 30
  9. #初始化攝像頭
  10. cam = Device(devnum=0, showVideoWindow=0)
  11. iNum = 0
  12. while True:
  13. #抓圖
  14. cam.saveSnapshot(str(iNum)+ '.jpg', timestamp=3, boldfont=1, quality=75)
  15. #休眠一下,等待一分鐘
  16. time.sleep(SLEEP_TIME_LONG)
  17. #超過5張,則覆蓋之前的,否則,硬盤很快就會寫滿
  18. if iNum == MAX_PIC_NUM:
  19. iNum = 0
  20. else:
  21. iNum += 1
2. 上傳圖片到新浪微博程序B:

[python]
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from weibopy.auth import OAuthHandler
  4. from weibopy.api import API
  5. import ConfigParser
  6. import time
  7. MAX_PIC_NUM = 5
  8. SLEEP_TIME_LONG = 30
  9. def press_sina_weibo():
  10. '''''
  11. 調用新浪微博Open Api實現通過命令行寫博文,功能有待完善
  12. author: socrates
  13. date:2012-02-06
  14. 新浪微博:@沒耳朵的羊
  15. '''
  16. sina_weibo_config = ConfigParser.ConfigParser()
  17. #讀取appkey相關配置文件
  18. try:
  19. sina_weibo_config.readfp(open('sina_weibo_config.ini'))
  20. except ConfigParser.Error:
  21. print 'read sina_weibo_config.ini failed.'
  22. #獲取需要的信息
  23. consumer_key = sina_weibo_config.get("userinfo","CONSUMER_KEY")
  24. consumer_secret =sina_weibo_config.get("userinfo","CONSUMER_SECRET")
  25. token = sina_weibo_config.get("userinfo","TOKEN")
  26. token_sercet = sina_weibo_config.get("userinfo","TOKEN_SECRET")
  27. #調用新浪微博OpenApi(python版)
  28. auth = OAuthHandler(consumer_key, consumer_secret)
  29. auth.setToken(token, token_sercet)
  30. api = API(auth)
  31. #通過命令行輸入要發布的內容
  32. # weibo_content = raw_input('Please input content:')
  33. # status = api.update_status(status=weibo_content)
  34. # print "Press sina weibo successful, content is: %s" % status.text
  35. iNum = 0
  36. while True:
  37. #上傳圖片,名稱和內容如果重復,open api會檢查,內容采用了取當前時間的機制
  38. #圖片名稱從0-5循環遍歷
  39. status = api.upload(str(iNum)+ '.jpg', time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()))
  40. time.sleep(SLEEP_TIME_LONG)
  41. if iNum == MAX_PIC_NUM:
  42. iNum = 0
  43. else:
  44. iNum += 1
  45. if __name__ == '__main__':
  46. press_sina_weibo()
Copyright © Linux教程網 All Rights Reserved