Как загрузить и показать jpeg с помощью Rserve в Java (Eclipse)?

Я хотел бы повернуть jpeg в Eclipse, используя Rserve(). Код в R такой.

install.packages("jpeg")
install.packages("Rserve")
library(Rserve)
library(jpeg)
library(grid)
setwd("I:/rr1")
aa<-readJPEG("bird.jpg")
r<-t(aa[,,1])
g<-t(aa[,,2])
b<-t(aa[,,3])
col <- rgb(r,g,b)
dim(col) <- dim(r)
grid.raster(col, interpolate=FALSE)

В Eclipse я не знаю, как использовать Rserve() для выполнения той же задачи. Изначально я использую

Image image = ImageIO.read(new File("i:\\rr1\\bird.jpg")); 

а потом

c.eval("aa<-image");

Но это не работает. Более того, похоже, я не могу использовать

c.eval("grid.raster(col, interpolate=FALSE)");

в Rserve(), чтобы окончательно объединить 3 канала в одно изображение. Кто нибудь знает как это сделать?? Спасибо!!


person miata    schedule 31.12.2015    source источник
comment
На самом деле это не имеет ничего общего с Rserve — какое устройство вы используете? Я бы порекомендовал устройство изображения, если вы изучаете растровые операции, например, Cairo поддерживает растровые операции в памяти, если вы этого хотите.   -  person Simon Urbanek    schedule 05.01.2016
comment
@SimonUrbanek Я только что установил r и Eclipse на один компьютер, я не знаю, может ли Cairo передавать изображение в матрицу, так как я должен был сделать что-то из матрицы позже.   -  person miata    schedule 05.01.2016


Ответы (1)


Вызов функций рендеринга изображений из Rserve поддерживается не так сильно, потому что функции рендеринга лучше всего работают из графического пользовательского интерфейса R (где окно отображения для рендеринга изображения было указано, определено и правильно отформатировано).

Вы можете попытаться записать сгенерированный растр в файл, а затем прочитать файл из Java с помощью ImageIO.read().

person brijs    schedule 01.07.2016