【发布时间】:2016-04-28 20:13:44
【问题描述】:
作为一个类比,考虑图像中像素的颜色。假设我们有一个 3D 数组,表示沿维度 3 堆叠的矩阵中图像的红色、绿色和蓝色通道。从整个图像中“减去颜色”(由长度为 3 的向量表示)的最简单方法是什么,在从红色通道中减去颜色的红色分量、从绿色通道中减去绿色分量、从蓝色通道中减去蓝色分量的感觉?
给定图像 A 和颜色 v,我们可以这样做:
for(i : 1:3){
A[,,i] <- A[,,i] - v[i]
}
或
A - array(rep(v,each=length(A[,,1])),dim(A))
最好的方法是什么?如果有像row 和col 这样的函数,但对于第三维(比如level),那么我可以简单地做
A - v[level(A)]
有这样的功能吗?
【问题讨论】:
-
见
?slice.index;A - v[slice.index(A, 3)] -
@alexis_laz 完美。你能把它变成答案吗?
标签: r