EBImage - это пакет Bioc (но поскольку он не будет правильно компилироваться на Mac, работающем с Yosemite), я не смог вначале попытаться изучить эту проблему. На этой машине, на которой работает Lion, я могу продемонстрировать, как смотреть на элементы формального класса «Изображение» и как их сортировать. (Я использую коммерческий файл, который был прикреплен к одному из моих писем, как мой тестовый случай, и это всего лишь 142 х 69 пикселей, так что я использовал меньше «окно»
> Image <- Image[75:100, 25:50,]
> display(Image)
> str(Image)
Formal class 'Image' [package "EBImage"] with 2 slots
[email protected] .Data : num [1:21, 1:31, 1:3] 1 1 1 1 1 ...
[email protected] colormode: int 2
.Data
Таким образом, компонент этого Объект S4 представляет собой массив 21 x 31 x 3 R. Существует, предположительно, красный, зеленый и синий слой, хотя я не эксперт по изображению, и могут быть другие цветовые схемы. Это позволит вам «увидеть» верхний левый угол первый слой:.
> [email protected][ 1:5,1:5 , 1]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0.9882353 1.0000000 1.0000000 1.0000000
[2,] 1 1.0000000 1.0000000 1.0000000 1.0000000
[3,] 1 1.0000000 1.0000000 0.9803922 0.8470588
[4,] 1 1.0000000 0.9960784 0.8588235 0.6627451
[5,] 1 1.0000000 0.9607843 0.8470588 0.6901961
Обратите внимание на-знак, а не знак доллара в качестве оператора экстракции инфиксного Это обеспечит механизм для вычисления суммы слоя Валу ЕЭС с коэффициентами и возведение в квадрат вас просил:
> Y <- 0.2126*[email protected][ , , 1]^2 + 0.7152*[email protected][ , , 2]^2 + 0.0722*[email protected][ , , 3]^2
> str(Y)
num [1:21, 1:31] 0.974 0.956 0.957 0.963 0.97 ...
Результатом является матрица R «интенсивности» одних и тех же размеров, что и проектируемых RGB слоев
(если это то, что .jpg файлы используются.) Сначала прочитайте файл справки для 'readImage'. Я бы сделал это за вас, но вы не указали, где можно найти этот пакет. В то же время рассмотрим пакет CRAN 'jpg', который создает' X by y по r, g, b' 3D-массив. Из этого тривиально делать то, что вы хотите. –
возможно 'browseVignettes (" EBImage ")' поможет? возможно, 'imgk = channel (img, 'rgb')' – ckluss