Решили тут мы на досуге разработать свою программную часть для tcp/ip камеры. Чтобы можно было установить ПО на микрокомпьютер, подключить к нему объектив (по типу WEB камеры) и распознать полученное изображение.
Эта разработка расширит фунционал нашего продукта Cluster Hub
Результатом подобного эксперимента хочу поделиться с читателями.
В качестве языка реализации задачи был выбран Python. В основном из-за готовых библиотек для работы с машинным зрением.
Далее, как говорится - дело техники.
Эта разработка расширит фунционал нашего продукта Cluster Hub
Результатом подобного эксперимента хочу поделиться с читателями.
В качестве языка реализации задачи был выбран 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)Эта библиотека способна распознавать несколько кодов на одной картинке. Причем достаточно быстро.
Осталось только обработать результат, что наш талантливый читатель сделает самостоятельно.
Осталось только обработать результат, что наш талантливый читатель сделает самостоятельно.