使用Tensorflow中的deltaE_ciede2000查找颜色距离

2024-10-03 13:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中,我可以使用此代码确定两个图像之间的颜色距离 但我不知道如何处理TensorFlow (我已经有一个将张量从RGB转换为LAB颜色空间的函数)

from skimage.color import deltaE_ciede2000
import cv2

im1 = cv2.imread('image1.jpg')
im2 = cv2.imread('image2.jpg')
im1_lab = cv2.cvtColor(im1, cv2.COLOR_BGR2LAB).astype(np.float32)
im2_lab = cv2.cvtColor(im2, cv2.COLOR_BGR2LAB).astype(np.float32)
color_dist = deltaE_ciede2000(im1_lab, im2_lab).mean()
print('color distance:', color_dist)

Tags: import颜色labcv2colorjpgimreadastype
1条回答
网友
1楼 · 发布于 2024-10-03 13:29:58

您可以将deltaE_ciede2000函数包装在^{}中:

import tensorflow as tf
from skimage.color import deltaE_ciede2000

a = tf.random.uniform((8,8,3))
b = tf.random.uniform((8,8,3))
color_dist = tf.reduce_mean(tf.py_function(deltaE_ciede2000, inp=[a,b], Tout=tf.float32))

另一个解决方案是在TensorFlow中重新实现skimage函数,您可以找到源代码here

相关问题 更多 >