我想在Julia 0.4中从Array{UInt8,3}
(灰度图像数据)制作Array{UInt8,2}
(彩色图像数据),如下所示:
using Images
dat = data(img)
dat2 = map(x -> (v = x*2 % UInt8; [v,0,0]), dat)
img2 = colorim(dat2)
但是,上面的代码会改为Array{Array{UInt8,1},2}
。如何制作“扁平”多维数组?
答案 0 :(得分:4)
您也可以使用
z = zeros(UInt8, size(A))
colorim(cat(3, A, z, z))
其中A
是红色通道中您想要的任何内容。
答案 1 :(得分:2)
使用数组理解:
dat2 = UInt8[k==1 ? (dat[i,j]*2)%UInt8 : zero(UInt8)
for i=1:size(dat,1),j=1:size(dat,2),k=1:3]
答案 2 :(得分:2)
另一种方法可能是:
dat2=zeros(UInt8,(size(dat)...,3))
dat2[:,:,1]=2*dat1