Поэтому я пытаюсь соединить вывод EBImage в пакет 'sp', чтобы создать файл пользовательской фигуры (или объект SpatialPolygonDataFrame).Используя демонстрационный пример из EBImage для сегментации ячеек, я пытаюсь вывести полигональную сегментацию в SpatialPolygonDataFrame.
Сложность в том, что EBImage создает для меня многоугольник и сохраняет его в большом массиве.Как я могу использовать эту многоугольную информацию / сегментацию и создать «SpatialPolygonDataFrame», используя данные этого примера?
Сегментация EBImage имеет массив RGB 510X510 для 4 изображений.Сегментация создает желаемую полигональную границу.Можно ли использовать эту многоугольную границу в качестве файла формы для пространственного анализа в пакете 'sp'?
nuc = readImage(system.file('images', 'nuclei.tif',
package='EBImage'))
cel = readImage(system.file('images', 'cells.tif',
package='EBImage'))
cells = rgbImage(green=1.5*cel, blue=nuc)
display(cells, all = TRUE)
nmask = thresh(nuc, w=10, h=10, offset=0.05)
nmask = opening(nmask, makeBrush(5, shape='disc'))
nmask = fillHull(nmask)
nmask = bwlabel(nmask)
display(nmask, all=TRUE)
ctmask = opening(cel>0.1, makeBrush(5, shape='disc'))
cmask = propagate(cel, seeds=nmask, mask=ctmask)
display(ctmask, all=TRUE)
segmented = paintObjects(cmask, cells, col='#ff00ff')
segmented = paintObjects(nmask, segmented, col='#ffff00')
display(segmented, all=TRUE)
> segmented
Image
colorMode : Color
storage.mode : double
dim : 510 510 3 4
frames.total : 12
frames.render: 4
imageData(object)[1:5,1:6,1,1]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 0 0 0 1 0 0
[2,] 0 0 0 1 0 0
[3,] 0 0 0 0 1 0
[4,] 0 0 0 0 0 1
[5,] 0 0 0 0 0 1
dim(imageData(segmented))
510 510 3 4