【发布时间】:2020-05-09 02:34:17
【问题描述】:
我想知道是否有软件库可以打开 jpeg 并将其子集转换为未压缩的数组(例如 Pillow)。这与打开文件,将其完全转换为位数组,然后获取位数组的子集的更常用方法形成对比。
就我而言,我想到的子集是左上角。文件解压缩为 2544 × 4200 像素,但我只对左上角的 150 × 900 像素感兴趣。
背景如下:
我希望 JPEG 格式是一串压缩子面板,并且当算法处理了足够多的子面板来满足所需的图像子集时,它可以停止。
我已经搜索了一段时间,但没有发现任何提及这种算法的内容,诚然,这是一种特殊情况。
背景
我使用 pyzbar 从高速扫描仪生成的 JPEG 图像的左上角捕获条形码。通常这需要每张图像大约 250 毫秒。 Pyzbar 的实际时间约为 2.5 毫秒,而其他 99% 的时间用于从文件中读取图像,使用 Pillow 对其进行解压缩,提取左上角。
我作为志愿者从事这项工作的非营利组织无法真正负担得起更换价值 25,000 美元的扫描仪,而这个旧机器所拥有的渠道是整体瓶颈。告诉扫描仪发送未压缩的图像会使整个过程减慢至少 90%
【问题讨论】:
-
枕头有什么问题?
-
Jpeg 数据存储为 8x8 块。如果你能找到
jpegtran -crop的等价物,你也许可以丢弃足够多的它们来获得投资回报率,而无需解码数据。非常有趣的问题。 -
@mkrieger1 在 Pillow 中裁剪图像之前,您必须先解压缩它。减压是这个过程所用时间的 99%。
-
vips可以做到这一点 - 请在此处查看约翰的出色回答 stackoverflow.com/a/48376269/2836621
标签: python-imaging-library jpeg