Jp *_*ddy 4 python rgb colors scikit-image cielab
给定 RGB 或 Hex 颜色,如何找到与其相似的颜色?相似我的意思是它们应该通过小的值来区分。
Ton*_*has 10
RGB 颜色空间取决于设备,并且在感知上并不统一。如果您打算测量颜色相似性,您应该首先将 RGB 值转换为与设备无关且在感知上更加统一的颜色空间,例如CIELAB。然后你就可以测量通过适当的相似性度量颜色差异,比如实验室的ΔE。
考虑这个图像:
让我们假设您的参考颜色是绿色阴影和洋红色阴影,其 RGB 值例如为[0, 160, 0]和[120, 0, 140]。以下代码段标识了那些相对于参考颜色的 Delta E 低于某个阈值(分别为15和20)的图像像素。
import numpy as np
from skimage import io
from skimage.color import rgb2lab, deltaE_cie76
rgb = io.imread('https://i.stack.imgur.com/npnrv.png')
lab = rgb2lab(rgb)
green = [0, 160, 0]
magenta = [120, 0, 140]
threshold_green = 15
threshold_magenta = 20
green_3d = np.uint8(np.asarray([[green]]))
magenta_3d = np.uint8(np.asarray([[magenta]]))
dE_green = deltaE_cie76(rgb2lab(green_3d), lab)
dE_magenta = deltaE_cie76(rgb2lab(magenta_3d), lab)
rgb[dE_green < threshold_green] = green_3d
rgb[dE_magenta < threshold_magenta] = magenta_3d
io.imshow(rgb)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4648 次 |
| 最近记录: |