【发布时间】:2017-12-05 00:21:53
【问题描述】:
是否有任何程序或代码可以让我获取图像每个像素的颜色值?或者某种图像文件格式,可以很容易地通过文本板或类似的东西阅读它们
【问题讨论】:
-
有关上下文的一些细节可能会有所帮助。特别是:这是一个编程问题吗?工具和库的问题通常被认为是题外话。在这种情况下,添加编程语言标签可能已经有所帮助...
标签: image image-processing colors pixel
是否有任何程序或代码可以让我获取图像每个像素的颜色值?或者某种图像文件格式,可以很容易地通过文本板或类似的东西阅读它们
【问题讨论】:
标签: image image-processing colors pixel
在 ImageMagick 中,txt: 输出格式允许精确的像素位置和十六进制值。使用 unix、tail 和 sed,我只能返回 ImageMagick 内部图像玫瑰左上角 10x10 区域的那些值(没有其他颜色值):。冒号对于 IM 内部图像很重要。只需将 rose:[10x10+0+0] 替换为您的实际 image.suffix。见http://www.imagemagick.org/Usage/files/#txt
convert rose:[10x10+0+0] -depth 8 txt: | tail -n +2 | sed -n "s/^\(.*\):.*\(#.*\) .*$/\1 \2/p"
返回:
0,0 #302F2D
1,0 #32302E
2,0 #36322F
3,0 #38332E
4,0 #3A332D
5,0 #39322D
6,0 #38302D
7,0 #39312E
8,0 #38302D
9,0 #38302D
0,1 #2F2E2C
1,1 #302F2D
2,1 #35302D
3,1 #37312D
4,1 #38312C
5,1 #38302C
6,1 #362F2C
7,1 #38312D
8,1 #38312D
9,1 #38312E
0,2 #2C2C2C
1,2 #2C2D2B
2,2 #302F2C
3,2 #312E2B
4,2 #322C28
5,2 #322D2A
6,2 #302C2B
7,2 #322C2B
8,2 #322B2B
9,2 #322C2B
0,3 #2C2D2F
1,3 #2B2D2F
2,3 #2E2D2D
3,3 #2F2D29
4,3 #2F2A27
5,3 #2D2B28
6,3 #2C2A2A
7,3 #2C2A2A
8,3 #2E2B2B
9,3 #2E2B2B
0,4 #2C2F32
1,4 #2B2F32
2,4 #2E2E30
3,4 #2D2E2D
4,4 #2D2B29
5,4 #2C2A2B
6,4 #2B292B
7,4 #282728
8,4 #2A2A2B
9,4 #2C2A2B
0,5 #2E302E
1,5 #2F2F2D
2,5 #2F312E
3,5 #32312E
4,5 #33302D
5,5 #332F2C
6,5 #322D2A
7,5 #2D2A2B
8,5 #2C2B2C
9,5 #2A292D
0,6 #32332D
1,6 #33342D
2,6 #35332E
3,6 #393631
4,6 #393631
5,6 #3A322E
6,6 #38302D
7,6 #332E2C
8,6 #333030
9,6 #2D2E30
0,7 #373832
1,7 #373832
2,7 #393934
3,7 #3C3A35
4,7 #403D38
5,7 #423A38
6,7 #413935
7,7 #3D3733
8,7 #3C3735
9,7 #3A3534
0,8 #383933
1,8 #393A34
2,8 #3E3E38
3,8 #413F3A
4,8 #443F3A
5,8 #46413C
6,8 #45413A
7,8 #45403A
8,8 #473F38
9,8 #453D34
0,9 #363731
1,9 #363831
2,9 #3D3D38
3,9 #42403B
4,9 #46413F
5,9 #48433E
6,9 #48433E
7,9 #4A443C
8,9 #4D4237
9,9 #4A3D30
【讨论】:
如果您想要图像中的不同颜色,您可以使用 ImageMagick:
for color in $(convert -list color | tail -n +6 | sed -r 's/.*\s([a-z]+\(.*)\).*/\1/'); do convert xc:"$color" -depth 8 txt: | grep -v -E '^#.*' | sed -r 's/^.*(#[0-9A-F]{6}).*/\1/' ; done
ImageMagick 的 convert -list color 将按名称和十进制值为您提供图像中所有颜色的列表。 convert xc:srgb(255,255,255) -depth 8 txt: 将为您提供有关颜色的更多信息。剩下的就是查找相关行并提取结果的相关部分的一些逻辑。
【讨论】: