我做了一些搜索,但没有找到完全相同的问题-而且我找到的解决方案不适用。在
我有一个图像,由一个numpy数组表示(l1,l2,3)
其中l1,l2是整数,3是因为RGB。在
由于某些原因,我想改变基,这意味着对所有的RGB向量应用一个矩阵p。请注意,P
的形状是(3,3)
。在
我写了这个:
def change_base(Image,P):
Image_copie=np.zeros(Image.shape)
for i in range(Image_copie.shape[0]):
for j in range(Image_copie.shape[1]):
Image_copie[i,j]=np.dot(P,Image[i,j])
return Image_copie
很明显,它是有效的,但它又丑又慢。在
你们有什么解决办法吗,也许用纽比?我不使用opencv。。!在
谢谢!在
您正在缩小两个输入} ,就像这样-
Image
和P
上的最后一个轴。所以,你可以使用^{这也可以表示为
^{pr2}$np.dot
,在它之前和之后进行一些重塑,比如-也可以使用^{} 来进行这样的还原操作,如-
对于性能而言,作为一个单独的缩减操作,没有轴对齐要求,
dot-based
解决方案对于大型数组会更快,但是对于小到合适大小的数组,einsum
可能更好。在运行时测试
案例1:
案例2:
相关问题 更多 >
编程相关推荐