如何提取像素数据使用R的pixmap包?
所以我使用以下方法读取图像文件:
picture < - read.pnm("picture.pgm")picture Pixmap image类型:pixmapGrey大小:749x745分辨率:1x1包围盒:0 0 745 749
如何将像素数据提取到某个矩阵中?
您可以通过 获取灰度图像的 2-D 矩阵数据或彩色图像的 3-D 数组数据getChannels。
> x <- read.pnm(system.file("pictures/logo.ppm", package="pixmap")[1])
> y <- getChannels(x)
> class(y)
[1] "array"
> dim(y)
[1] 77 101 3
>
> x <- read.pnm(system.file("pictures/logo.pgm", package="pixmap")[1])
> y <- getChannels(x)
> class(y)
[1] "matrix"
> dim(y)
[1] 77 101
Run Code Online (Sandbox Code Playgroud)
如果你想更直接地访问数据,请使用S4访问器( @),例如:
> x <- read.pnm(system.file("pictures/logo.ppm", package="pixmap")[1])
> str(x)
Formal class 'pixmapRGB' [package "pixmap"] with 8 slots
..@ red : num [1:77, 1:101] 1 1 1 1 1 1 1 1 1 1 ...
..@ green : num [1:77, 1:101] 1 1 1 1 1 1 1 1 1 1 ...
..@ blue : num [1:77, 1:101] 1 1 0.992 0.992 1 ...
..@ channels: chr [1:3] "red" "green" "blue"
..@ size : int [1:2] 77 101
..@ cellres : num [1:2] 1 1
..@ bbox : num [1:4] 0 0 101 77
..@ bbcent : logi FALSE
> x@size
[1] 77 101
Run Code Online (Sandbox Code Playgroud)