为了一个课程,我需要将RGB图像转换为YIQ。
我们被告知可以通过以下方式进行转换:
我开始编写循环的混乱代码来进行矩阵乘法,然后我发现了一个函数。
skimage.color.yiq2rgb(imYIQ)
当我看到他们在做什么时,我看到了以下内容(我正在复制一些东西,这样会更清楚):
yiq_from_rgb = yiq_from_rgb = np.array([[0.299, 0.587, 0.114],
[0.59590059, -0.27455667, -0.32134392],
[0.21153661, -0.52273617, 0.31119955]])
return np.dot(arr, yiq_from_rgb.T.copy())
当arr
只是RGB图像的矩阵时
我正在尝试理解为什么这样可以工作?为什么他们要取转置矩阵?(.T)
当arr
的形状与yiq_from_rgb不同时,点积是如何工作的?
对于二维数组,它等同于矩阵乘法。
- wwiiarr[:,:,0]
,蓝色通道是arr[:,:,1]
... - wwii