【发布时间】:2018-09-23 16:05:10
【问题描述】:
我有 10 个 1944 x 2546 二进制图像存储在 nparray images 中。
我想读取 10 张图像上每个像素的像素值,并将它们组合成一串 0 和 1(例如 '1001101100')并将它们存储到二维数组 output 中。到目前为止,我正在使用嵌套的 for 循环,这非常慢。因此,我想知道是否有任何更聪明的方法来实现相同的结果。我目前的代码如下:
output = [()]
for y in range(0,image_height):
for x in range(0,image_width):
code_string = ''
for n in range(0,len(images)-2):
code_string = code_string + str(images[n][y,x]/255)
output.append(code_string)
【问题讨论】:
-
这是一件很奇怪的事情!你愿意说一下你之后打算如何处理这些字符串吗?您是否考虑过将它们存储为每个位置的整数中的位?然后,您可以使用逻辑 AND、OR、XOR 对它们进行操作。
-
我正在解码一系列格雷码结构光图案(最终用于 3D 场景重建),因此我需要为每个像素获取一个类似 '1001101100' 的字符串。此信息将有助于提供 2 个摄像头之间的空间对应关系。
标签: arrays python-3.x image performance numpy