Python:串行传输

时间:2012-03-20 16:45:17

标签: python serial-port

我的图像堆栈有500张图像(jpeg)640x480。我打算将500像素(所有图像的第1个像素)作为列表,然后通过COM1将其发送到FPGA进行进一步处理。

我在这里有几个问题:

  1. 如何将所有500张图片一次导入python,如何存储?
  2. 如何通过COM1将500像素列表发送到FPGA?
  3. 我尝试了以下内容:

    1. 在MATLAB中将jpeg图像转换为强度值(每个像素由0到255之间的数字表示),将强度值保存在文本文件中,使用readlines()读取该文件。但是为所有500张图像制作强度值文件变得太麻烦了!
    2. 使用NumPy将读取的文件放入矩阵中,然后选择所有图像的第一个像素。但是当我发送它时,它会像:[56, 61, 78, ... ,71, 91]
    3. 有没有办法在连续发送数据时消除[ ],

      提前致谢! :)

1 个答案:

答案 0 :(得分:3)

广告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中的强度值列表。