【问题标题】:Extract color table values提取颜色表值
【发布时间】:2020-09-27 18:00:47
【问题描述】:

如何以编程方式提取此表的颜色值?

输出应该类似于

[[0.7, 0.7, 0.6, 0.0,...],,
 [0.4, 0.1, 0.0, 0.2,...],
 ...
 [1.0, 0.0, 0.4, 0.3, ...]]

以 numpy 格式。解决方案将涉及 2 个步骤:

1) 读取右侧的颜色条并从中构建颜色图。

2) 将表格分解为正方形,并将反向颜色图应用于每个正方形。

我曾尝试改变 this repository 的用途,但到目前为止无济于事。使用 OpenCV 的答案会很好,但当然是最好的!

【问题讨论】:

标签: python opencv colors colormap


【解决方案1】:

使用 OpenCV 的答案会很好,但当然可以 最好的!

这里有一种使用 ImageMagick 6 的方法,而不是 Python/OpenCV。

我注意到,当最白时比例为 0,当最蓝时比例为 1。因此,如果将图像转换为 HSV 并获取值通道,将动态范围拉伸到 0 到 255 并将其反转为暗为 0,亮为 1,则只需获取单元格的亮度即可。网格的尺寸接近 300x370 像素。所以裁剪到 300x370 并使多余的透明产生 10x10 30x37 像素的单元格。所以我们可以对每个 30x37 的块中的像素进行平均得到值。

  • 阅读图片
  • 裁剪为 335x370 大小以获得感兴趣的网格区域和比例
  • 复制它并使任何完全白色的东西透明,即图像背景为白色,然后提取 Alpha 通道并将其作为蒙版保存在内存 (mpr) 中
  • 将裁剪区域转换为 HSV 并仅提取值通道
  • 将蒙版放入Value通道图像的Alpha通道
  • 拉伸到全动态范围
  • 裁剪 300x370 网格区域
  • 通过平均每个 30x37 块(忽略透明像素)将 300x370 区域缩放(通过块平均)到 10x10 像素
  • 将图片转换为txt:格式,提取0到100范围内的灰度,除以100得到0到1范围内的灰度并列出到终端


输入:

convert chart.png -crop 335x370+59+58 +repage +write chart_cropped.png \
\( -clone 0 -transparent white -alpha extract +write chart_mask.png -write mpr:mask +delete \) \
-colorspace HSV -channel 2 -separate +channel +write chart_value.png \
mpr:mask -alpha off -compose copy_opacity -composite +write chart_value_a.png \
-auto-level -crop 300x370+0+0 +repage \
-scale 10x10! -alpha off -negate \
txt: | tail -n +2 | sed -n 's/^.*gray[(]\(.*\)\%[)]$/\1/p' | awk '{print($1/100)}'


裁剪图像为 335x370 像素:

面具图片:

带有 alpha 的值通道:

300x370 裁剪网格:

10x10 结果单元格值:

0.587839
0.594598
0.412161
0.0608072
0.334691
0.836713
0.98175
0.455177
0.494606
0.0405432
0.243244
0.0540475
0.0405432
0.128374
0.386923
0.0565347
0.317128
0.12636
0.661707
0.749996
0.425681
0.337835
0.141894
0.121614
0.248661
0.0189212
0.172305
0.0761273
0.159457
0.594598
0.864866
0.256764
0.499992
0.00675975
0.153368
0.0999924
0.255863
0.239857
0.562173
0.959457
0.425681
0.243244
0.0945907
0.20473
0.0792859
0.409918
0.149096
0.189639
0.574319
0.324331
0.324331
0.189197
0.263508
0.0351263
0.261936
0.025452
0.182666
0.369375
0.148653
0.277028
0.10135
0.364858
0.202701
0.191897
0.2813
0.584466
0.104723
0.399542
0.412161
0.364858
0.22298
0.459464
0.00675975
0.0195926
0.579049
0.315328
0.0599069
0.231083
0.250004
0.0608072
0.364858
0.358114
0.202701
0.147082
0.118242
0.597971
0.294591
0.063508
0.668925
0.905409
0.22298
0.189197
0.0932326
0.420706
0.0889754
0.331991
0.533791

【讨论】:

    猜你喜欢
    • 2018-06-20
    • 2013-05-16
    • 2016-11-28
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多