Эта разработка расширит фунционал нашего продукта Cluster Hub
Результатом подобного эксперимента хочу поделиться с читателями.
[spoiler]
В качестве языка реализации задачи был выбран Python. В основном из-за готовых библиотек для работы с машинным зрением.
Далее, как говорится - дело техники.
# main.py from distutils.log import debug import os import io import requests from PIL import Image from flask import Flask, request from pyzbar import pyzbar basedir = os.path.abspath(os.path.dirname(__file__)) app = Flask(__name__) app.config['SECRET_KEY'] = 'I have a dream' app.config['UPLOADED_PHOTOS_DEST'] = os.path.join(basedir, 'uploads') # В качестве входящих данных используется ссылка на изображение. # http://127.0.0.1:5000/?url=https://habrastorage.org/webt/l-/kt/xo/l-ktxopaccb_sul1jd_jnw65jei.png # Которое мы выкачиваем в виде байткода и скармливаем библиотеке pyzbar @app.route('/', methods=['GET', 'POST']) def savetoServer(): args = request.args url = args.get('url') response=requests.get(url) picb=response.content pic = Image.open(io.BytesIO(picb)) #pic = Image.frombytes("L", (203, 203), picb) #pic = Image.open(io.StringIO(picb)) pic.save("test.png") decoded_objects = pyzbar.decode(pic) for obj in decoded_objects: print("Type:", obj.type) print("Dat a:", obj.data) print() # Конечно же на выходе ничего не будет, но результат можно глянуть в отладчике :-) return "" if __name__ == '__main__': app.run(debug=True) |
Осталось только обработать результат, что наш талантливый читатель сделает самостоятельно.