【发布时间】:2014-06-23 16:43:42
【问题描述】:
我有一个包含 RGB 值的文件。喜欢,
示例图像 Data.txt 文件
每行包含由空格分隔的三元组(如 255,255,255)。
每个三元组都有三个逗号分隔的整数。这些整数对应于 R ('RED')、G ('GREEN') 和 B ('BLUE') 值。所有整数都小于 256。
255,255,255 250,250,250 254,254,254 250,250,250
255,255,255 253,253,253 255,255,255 255,255,255
251,251,251 247,247,247 251,251,251 250,250,250
195,195,195 191,191,191 195,195,195 195,195,195
255,255,255 253,253,253 254,254,254 255,255,255
255,255,255 254,254,254 239,239,239 240,240,240
238,238,238 254,254,254 255,255,255 255,255,255
处理后的输出应如下所示:
红色 = ['255','250','254','250','255','253','255',............,'254','255','255']
绿色 = ['255','250','254','250','255','253','255',............,'254','255','255']
蓝色 = ['255','250','254','250','255','253','255',............,'254','255','255']
RGB_Nx3_MATRIX = [['255','255','255'],['250','250','250'],['254','254','254'].....['255','255','255']]
我的代码运行良好。
import re
file_object = open('Image Data.txt','r')
RED_VECTOR = [] #SEQUENTIALLY STORES ALL 'R' VALUES
GREEN_VECTOR = [] #SEQUENTIALLY STORES ALL 'G' VALUES
BLUE_VECTOR = [] #SEQUENTIALLY STORES ALL 'B' VALUES
RGB_Nx3_MATRIX = [] #Nx3 MATRIX i.e. ['R','G','B'] N times
for line in file_object:
SPACE_split_LIST = line.split()
for pixel in SPACE_split_LIST:
RGB = re.findall(r'\,?(\d+)\,?',pixel)
RED_VECTOR += [RGB[0]]
GREEN_VECTOR += [RGB[1]]
BLUE_VECTOR += [RGB[2]]
RGB_Nx3_MATRIX += [RGB]
#RESULTS
#print RED_VECTOR
#print GREEN_VECTOR
#print BLUE_VECTOR
#print "------------------"
#print RGB_Nx3_MATRIX
我在寻找什么?
我需要一种更好、更有效的方法来做到这一点。我想避免使用两个 for 循环。
【问题讨论】:
-
这个问题似乎是题外话,因为它是关于改进已经工作的代码。更适合codereview.stackexchange.com。
标签: python regex python-2.7