在做一个图像的转换,读入 jpg,将 rgb 转为 luv.
import cv2
import numpy as np
im=np.array([[[0.78039217, 0.73333335, 0.73333335]]],dtype=float32)
im_xyz=cv2.cvtColor(im,cv2.COLOR_RGB2XYZ) #这个结果好像正确 array([[[ 0.71641064, 0.74334133, 0.79932952]]], dtype=float32)
im_luv=cv2.cvtColor(im,cv2.COLOR_RGB2LUV)#array([[[ 76.84296417, 6.9851861 , 1.50677502]]], dtype=float32) #我怀疑这个是错误的。
但是我用 matlab 跑的结果是 89.0798 , 3.5388 , 0.7616
而我自己按照官方文档?的公式的结果 L 也是 89.0 。我真的觉得是不是 OpenCV 这个函数写错了。
求解啊, OpenCV 真是神坑, imread 默认读入是 BGR ,我晕。 CV_RGB2XYZ 早就改成了 COLOR_RGB2XYZ 官方文档都不改。我也是醉了,一天都在搞这个,烦死了。