Выборка изображения для получения точечного рисунка - PullRequest
0 голосов
/ 05 сентября 2018

Вот пример, где авторы взяли это изображение:

enter image description here

и проанализировано с помощью spatstat. Для этого они извлекли координаты, как это можно было видеть здесь . Я хотел бы сделать то же самое, и мне интересно, как можно получить образец точки образца из изображения, как это. Непосредственное преобразование изображения в объект ppp создает множество артефактов.

Инструкция в их пакете R BioC2015Oles, похоже, не существует. Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Вы можете сделать

library(raster)
x <- brick('tLh2E.jpg')
#plotRGB(x)

Все ячейки с координатами:

xyz = rasterToPoints(x)
head(xyz)
#       x      y tLh2E.1 tLh2E.2 tLh2E.3
#[1,] 0.5 1103.5     222     222     224
#[2,] 1.5 1103.5     214     214     216
#[3,] 2.5 1103.5     223     223     225
#[4,] 3.5 1103.5     220     220     222
#[5,] 4.5 1103.5     197     197     199
#[6,] 5.5 1103.5     198     198     200

Или образец:

s1 <- sampleRandom(x, 100, xy=TRUE)
s2 <- sampleRegular(x, 100, xy=TRUE)

Чтобы посмотреть расположение образцов

plotRGB(x)
points(s1[, 1:2])
points(s2[, 1:2], col='red', pch=20)

Для создания изображения из обычного образца

r <- sampleRegular(x, 1000, asRaster=TRUE)
plotRGB(r)

Для стратифицированной выборки вы должны будете определить регионы. Вы можете нарисовать их с помощью raster::drawPoly() с последующим rasterize или смоделировать их, см. raster::predict. Здесь очень простой и, возможно, не очень хороший подход, основанный на эффекте глаз. Оказывается, что второй, «зеленый» слой (из красно-зелено-синего изображения) содержит большую часть информации. Это сблизит вас:

r <- reclassify(x[[2]], rbind(c(0,100,1), c(100,175,2), c(175,255,3)))
plot(r, col=c('red', 'blue','gray'))

Теперь вы можете узнать, какой цвет имеет каждая точка:

extract(r, s1[,1:2])
0 голосов
/ 06 сентября 2018

Пакет spatstat предполагает, что вы уже обработали свое изображение и получили список координат и, возможно, некоторые атрибуты (метки), связанные с каждой парой (x, y). В идеале у вас также должно быть окно наблюдения, указывающее, где могут потенциально находиться точки. В spatstat есть растровые / графические форматы, называемые im, которые могут хранить изображение / растр, но многие из них используются для хранения вспомогательной информации из эксперимента, которая может использоваться для объяснения появления или отсутствия точек в областях. окна наблюдения и не выполнять обработку изображений как таковую.

Чтобы преобразовать изображение с шумным микроскопом, например. В списке клеточных центров люди обычно используют различные инструменты и методы обработки изображений (водораздел, морфологические открытия и закрытия и т. д.). Кажется, что презентация, на которую вы ссылаетесь, основана на пакете R EBimage (который находится на BioConductor и имеет руководство), и вы можете попытаться извлечь клетки, используя это. В качестве альтернативы существуют другие пакеты в R или совершенно другие системы с открытым исходным кодом, ориентированные на анализ изображений, такие как QuPath , ImageJ и многие другие. Я не могу точно подсказать вам, какой из них лучше для вашей задачи.

...