Сохранение модуля imgproc для малины python

Привет, я использую библиотеку python под названием imgproc которая делает это так, что я могу снимать изображения с веб-камеры на малину-пи. Но я не знаю, как сохранить его в файле .jpg . Я исследовал всюду, но я не могу найти ответ нигде. Ссылка на библиотеку здесь . Я пробовал все, но у меня нет пи-куба, который является правильным методом. Имеет мой текущий код:

 import socket import time from imgproc import * cam = Camera(320, 240) host = "example.com" port = 8888 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ri = socket.gethostbyname(host) s.connect((ri , port)) x = True while x: img = cam.grabImage() 

One Solution collect form web for “Сохранение модуля imgproc для малины python”

Это возможно, используя, например, PIL или другую подобную библиотеку. Однако, если вы хотите, чтобы это было быстро, есть некоторые проблемы.

Задача исходит из API imgproc , который, похоже, не позволяет быстро получить доступ к данным изображения. Единственный метод для этого – использование метода __getitem__ объекта Image , например img[x,y] . Это очень похоже на массивы numpy , но, к сожалению, у них нет ничего общего.

imgproc – очень тонкая оболочка, построенная на библиотеке C. Поучительно взглянуть на imgproc.py , поскольку он показывает все доступные привязки.

Скорее всего, вам придется построить пиксель за пикселем, что не очень быстро. Например:

 img_array = numpy.array([ [ img[x,y] for x in range(img.width) ] for y in range(img.height) ] , dtype='uint8') 

Когда у вас есть массив изображений, вы можете преобразовать его в изображение PIL и сохранить изображение:

 pil_img = Image.fromarray(img_array) pil_img.save('my_image.jpg') 

Для этого вам нужны модули numpy и Image (PIL). Этот метод не очень быстрый. Альтернативой является создание пустого массива numpy и его заполнение:

 img_array = numpy.empty((img.height, img.width, 3), dtype='uint8') for y in range(img.height): for x in range(img.height): img_array[y,x] = img[x,y] 

Только тестирование покажет, какой из них менее медленный.

В принципе, не слишком сложно увеличить библиотеку, добавив в библиотеку бит более мощные функции-обертки, чтобы вернуть содержимое двоичного буфера в лучшем формате, но для этого требуется знание как в C, так и в python.

  • Python и gpio малина
  • Ошибка сегментации с opencv, в python на малине
  • Есть ли у Raspberry Pi 2 модель B v1.1 внутренний RTC?
  • Python Key Press и Key Release Listener
  • Ошибка SSL на малине Pi
  • Как вы обновляетесь до последней версии python 3.5.1 на малиновом pi?
  • Сканирование QR-кода через zbar и Raspicam modul
  • Малина Pi NoIR камера висит
  • используя GPIO для управления малиновым пикамером с помощью кнопки
  • Как заставить сервопривод медленно достичь желаемого угла?
  • Python на вкладке пользователя Raspberry Pi внутри бесконечного цикла пропускает входы при ударе со многими
  •  
    Interesting Posts for Van-Lav

    При использовании os.execlp, почему `python` нуждается в` python` как argv

    Изменение масштаба графика в процентах в matplotlib

    Повторно назначить исключение из блока python __exit__

    ключи переключения и значения в словаре в python

    Как разрешить ошибку позиционного индекса в python при решении условия в python?

    word_tokenize ТипError: ожидаемая строка или буфер

    PyCrypto на сервере разработки Google App Engine «ImportError: невозможно импортировать имя blockalgo»

    Предварительная обработка в scikit learn – отдельная выборка – Предупреждение об износ

    Отображение символа Юникода

    python: как отправлять почту с TO, CC и BCC?

    Храните объект, используя питонный рассол, и загрузите его в другое пространство имен

    Перечисление комбинаций N шаров в коробках?

    Django: импорт модели CSV

    Как получить отложенные и выполняемые задачи Celery с их аргументами?

    Как объявить зависимость от gi.repository в setup.py (и требуемой библиотеке C)?

    Python - лучший язык программирования в мире.