Twitterの投稿画像を解析してランニング自動記録アプリを作ろう
先月より体力維持のためランニングを夜の習慣にしているのですが、その時にこのアプリを使っています。
高校の頃もランニングをしていたのですが、あの当時からするとGPSを計測して距離をお知らせしてくれるアプリなんて考えられなかったのでちょっと感動。
しかしこのアプリ、Twitterへの投稿ができないのでアプリの中でしか記録を利用できないのがちょっと残念。
というわけで画像認識から記録を自動的に取得できるようにしてアプリの外でも自在に記録を利用できるようにしてみようかなと、思いつきで決意しました。
(画像アップロードは手動の模様)
Twitterの画像を取得しよう
ライブラリが充実していると噂のpythonを遣います。
普段読んだことしかないのでめっちゃ苦戦しました…。
でも記述数少ないのはホントに楽。
#download.py #!/usr/bin/env python # -*- coding: utf-8 -*- from tweepy import * import urllib import sys import os.path import re f = open('twikeys.txt') data = f.read() f.close() lines = data.split('\n') def get_oauth(): consumer_key = lines[0] consumer_secret = lines[1] access_key = lines[2] access_secret = lines[3] auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_key, access_secret) return auth def download(url, path): fp = urllib.urlopen(url) local = open(path + re.sub(r'[:\\\/]', '_', url), 'wb'); local.write(fp.read()); local.close() fp.close() auth = get_oauth() api = API(auth) s = api.get_status(*画像ツイートのstatusを取ってくる*) try: j = 0 for i in s.extended_entities['media']: print(i['media_url']) download(i['media_url'], "./saveImage/") j = j+1 except: print('exit') #downloadしてきた画像をopenCVで解析
画像の保存に成功しました。
画像をローカルに保存できたのはいいですが、実際にはweb上でアプリを動かす予定なので改良予定。
webの画像をopenCVで処理ってできるのかわかりませんが。
認識は一番簡単なテンプレートマッチングを使用する予定です。
何に記録を使うのかは未定。