我已经编写了一个遍历低分辨率图像每个像素,并将每个像素的色相、饱和度和亮度级别(HSL)存储在数组中的代码。现在,我想遍历每个这些HSL级别,确定它最接近的颜色,并将此信息存储到一个新数组中。我已经编写了以下代码:
arrayCol = np.zeros((sHeight,sWidth), dtype = str)
for y in range(sHeight):
for x in range(sWidth):
#for n in range(3):
if arrayHSL[y][x][2] <= 10:
if arrayHSL[y][x][2] <= 10:
arrayCol[y][x] = 'blk'
print(arrayCol)
如果亮度低于某个阈值,则将像素分配为“blk”或“black”。然而,在打印和查看数组时,它并没有在正确的位置显示“blk”,而是只显示了第一个字母“b”,如下所示:
[['' '' '' '' '' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' '' 'b' '' '' '' '']
['' '' '' '' '' '' 'b' 'b' 'b' 'b' '' 'b' 'b' '' '' '' '' '' '' '']
['b' '' '' '' '' '' '' '' 'b' 'b' 'b' 'b' 'b' '' '' '' '' '' '' '']
['' '' '' '' '' '' '' '' '' 'b' 'b' 'b' '' '' '' '' '' '' '' '']
['' '' '' '' '' '' '' '' '' '' 'b' '' '' '' '' '' '' '' '' '']
['' '' '' '' '' 'b' '' '' '' '' '' 'b' '' '' '' '' '' '' '' '']
['' 'b' '' 'b' '' '' '' '' '' '' 'b' 'b' '' '' '' '' '' '' '' '']
['' '' '' 'b' '' 'b' '' '' '' '' '' '' '' 'b' '' '' '' '' '' '']
['' '' 'b' '' '' 'b' 'b' 'b' '' '' '' '' '' 'b' '' '' '' '' '' '']
['' '' 'b' 'b' '' 'b' '' 'b' '' 'b' 'b' '' 'b' 'b' '' '' '' '' '' '']
['b' '' 'b' '' 'b' '' '' '' 'b' 'b' '' 'b' 'b' 'b' '' '' '' 'b' '' '']
['b' 'b' 'b' 'b' 'b' 'b' 'b' '' '' '' '' 'b' '' 'b' '' '' '' '' '' '']
将名称“blk”更改为其他名称,例如“rlk”,只显示一个“r”。这不是什么大问题,但是一旦我开始实现其他颜色,例如蓝色或棕色,我和Python都无法区分它们。因此,我的问题是如何使数组存储颜色的全名而不仅仅是第一个字母?谢谢。