私はシングルフレームのグレースケール画像を持っています。私はある値のすべてのピクセルが赤くなるように画像を修正したいと思います。明らかに、私は画像を3フレーム画像に変換する必要があります。 私は便宜のためにEBImageパッケージを使用していますが、基本パッケージのみを使用した簡単なコードは素晴らしいでしょう。シングルフレームのグレースケール画像に色要素を追加する
mat = round(matrix(runif(100), ncol = 5), digits = 1)
mat
[,1] [,2] [,3] [,4] [,5]
[1,] 0.1 0.2 0.6 0.1 0.8
[2,] 0.1 0.3 0.4 0.5 0.6
[3,] 0.6 0.3 0.8 0.8 0.5
[4,] 0.5 0.9 0.7 0.3 0.2
[5,] 0.7 0.7 0.9 0.3 0.2
[6,] 0.6 1.0 0.4 0.7 0.3
[7,] 0.7 0.6 0.5 0.8 0.5
[8,] 0.4 0.8 0.2 0.2 0.1
[9,] 0.2 0.1 0.4 0.9 0.6
[10,] 0.7 0.3 0.2 0.3 0.8
[11,] 0.8 1.0 0.4 0.8 0.3
[12,] 0.8 1.0 0.5 0.8 0.7
[13,] 0.6 0.5 0.9 0.9 0.1
[14,] 1.0 0.5 0.6 0.0 0.3
[15,] 0.1 0.5 0.6 0.6 0.2
[16,] 0.2 0.8 0.2 0.5 0.2
[17,] 0.9 0.9 0.4 0.7 0.1
[18,] 0.3 0.7 0.9 0.7 0.4
[19,] 1.0 0.0 0.5 0.0 1.0
[20,] 0.2 0.3 0.9 0.3 0.6
matgray = 255*mat
mat_rgb = channel(matgray, 'rgb') ## using EBImage package
dim(mat_rgb)
[1] 20 5 3
mat_red = channel(mat_rgb, 'asred')
# To generate and save gray image from gray matrix
par(mar = c(0,0,0,0))
png(filename = paste("Image.png"), res=1)
image(mat_red, axes = FALSE)
dev.off()
私は画像を保存するために行く、それはMissing frame index for an image stack, assuming 'i = 1'
を言うと、画像は実際には任意の赤を表示しません...任意の助けをありがとう!
ありがとう、それは素晴らしいですね。しかし、私はこれが私がやろうとしていることではないと確信しています。あなたが提案するものは、明暗のコントラストを保ちながら、すべてのピクセルを赤で色付けします。私が望むのは、ほとんどのピクセルをグレイスケールで保持し、グレイスケール値が0であるすべてのピクセルを赤に変更することです。その結果、そこには赤いピクセルが少し浮かぶグレースケールの画像になります。 – Gabriel123
私はそれに応じて答えを更新しました。 – aoles
おなかがありがとう、それはうまく動作します:-) – Gabriel123