TL; DR: die Image()
Konstruktor Matrizen oder Arrays Image
Objekte zu konvertieren.
Sie können einfach zwischen einfachen Matrizen/Arrays und Image
Objekten mit Hilfe von imageData()
Accessor und Image()
Konstruktor wechseln. Eine andere Möglichkeit, eine Pixelintensitätsmatrix auf eine Image
zu übertragen, ist die Verwendung von as.Image()
. Im folgenden Beispiel wird diese Vorgehensweise bei einem einkanaligen Graustufenbild veranschaulicht.
library(EBImage)
## sample grayscale image
f <- system.file("images", "sample.png", package="EBImage")
x <- readImage(f)
## extract pixel intensity matrix from the Image object
m <- imageData(x)
## convert matrix to Image
img <- Image(m)
## combine and display the result
img2 <- combine(img, img)
display(img2, method="raster", all=TRUE)
Wenn Ihr Pixelintensitäten Array enthält getrennte Farbkanäle für die roten, grünen und blauen Komponenten, würden Sie zusätzlich die colormode=Color
Argument Image()
angeben.
## get sample pixel intensity RGB array
x <- readImage(system.file("images", "sample-color.png", package="EBImage"))
a <- imageData(x)
## convert back to Image
img <- Image(a, colormode=Color)
## combine and display the result
img2 <- combine(img, img)
display(img2, method="raster", all=TRUE)
Falls Sie Farbkanäle als separate Matrizen, können Sie sie in einen Farb Image
mit Hilfe von rgbImage()
kombinieren.
## matrices corresponding to red, green and blue color channels
r <- a[,,1]
g <- a[,,2]
b <- a[,,3]
## construct an color Image object
img <- rgbImage(r, g, b)
Funktioniert hier nicht. Ich erhalte den folgenden Fehler nach dem letzten Display-Anruf. 'Fehler in validImage (x): Objekt muss ein Array sein. Windows, R Ver 3.4.3 – dca
Welche Version von EBImage verwenden Sie? (Sie können die Paketversion anzeigen, indem Sie 'packageVersion (" EBImage ")') ausführen. Der obige Code läuft unter der EBImage-Version einwandfrei. Wenn Sie also eine ältere Version haben, können Sie ein Upgrade durchführen, indem Sie 'source (" https://bioconductor.org/bioclite.R ") ausführen; bioClite ("EBImage") '. – aoles
PackageVersion ("EMIage") = '4.20.1'. Und das ist der gleiche, nachdem ich Ihren Upgrade-Code ausgeführt habe. Und jetzt auf einem Mac. – dca