Python: последовательная передача - PullRequest
0 голосов
/ 20 марта 2012

У меня есть стопка изображений 500 изображений (jpeg) 640x480. Я намерен составить 500 пикселей (1-й пиксель всех изображений) в виде списка, а затем отправить его через COM1 в FPGA, где я продолжу свою обработку.

У меня есть пара вопросов здесь:

  1. Как мне импортировать все 500 изображений за раз в python и как мне сохранить его?
  2. Как отправить список 500 пикселей через COM1 на FPGA?

Я попробовал следующее:

  1. Преобразовал изображение JPEG в значения интенсивности (каждый пиксель обозначается числом от 0 до 255) в MATLAB, сохранил значения интенсивности в текстовом файле, прочитайте этот файл, используя readlines(). Но это стало слишком громоздким, чтобы создавать файлы значений интенсивности для всех 500 изображений!
  2. Использовал NumPy, чтобы поместить прочитанные файлы в матрицу, а затем выбрать первый пиксель всех изображений. Но когда я отправляю это, оно приходит как: [56, 61, 78, ... ,71, 91].

Есть ли способ исключить [ ] и , при последовательной отправке данных?

Заранее спасибо! :)

1 Ответ

3 голосов
/ 20 марта 2012

Объявление 1: используйте библиотеку типа PIL для доступа к изображениям.Вы можете загрузить изображение с помощью

from PIL import Image
im = Image.open("img000.jpg")

и получить доступ к первому значению пикселя с помощью

pixel = im.getpixel(0,0)

. Это возвращает цветовой кортеж для первого пикселя, из которого вы должны рассчитать интенсивность.

Объявление 2: Это зависит от того, как ваша FPGS ожидает значения?Поскольку вы упомянули исключение [, вам нужна строка ASCII, разделенная запятыми?Попробуйте

pixel_string = ','.join([str(x) for x in pixel_list])

Если вам нужно отправить серию байтов, создайте строку байтов, как

pixel_string = ''.join([chr(x) for x in pixel_list])

В обоих примерах предполагается, что вы создали список значений интенсивности в pixel_list.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...