2016-10-25 10 views
1

У меня есть нерегулярная область интереса от изображения MRI, которое я выбрал. Я хотел бы сделать совместный анализ на изображении с помощью библиотеки skimage.feature.greycomatrix. Однако мой ROI имеет неправильную форму. Сохранение 0 в массиве numpy изображения приведет к некорректному анализу совпадения серы, и я сделал их NaN. Однако greycomatrix не может анализировать массив numpy с NaN. Кто-нибудь испытал эту проблему или имел решение?greycomatrix в python, включая NaN

+0

не думаю * python * сам имеет 'greycomatrix'. Вы имеете в виду ['skimage.feature.graycomatrix' из' sckit-image'] (http://scikit-image.org/docs/dev/auto_examples/plot_glcm.html)? Если нет, с какой библиотекой обработки изображений вы сейчас получаете функцию? –

+0

Привет, Уоррен, да, я импортирую skimage.feature.greycomatrix. Поэтому мне интересно, есть ли способ использовать эту библиотеку на изображениях, которые включают в себя NaN/нерегулярные ROI или если есть другая библиотека greycomatrix, которую можно использовать. Я помню, что читал, что Matlab может обрабатывать NaN в вычислениях. Благодарю. –

ответ

1

В связи с этим вопросом не похоже, что библиотека greycomatrix в skimage может обрабатывать значения NaN или нерегулярные формы, но только анализ «всего изображения».

Чтобы обойти это, я решил сделать анализ изображения в «R», экспортируя матрицу в виде CSV затем импортировать его в R с помощью:

import rpy2.robjects.numpy2ri 
from rpy2.robjects.packages import importr 
import rpy2.robjects as ro 
import pandas.rpy.common as com 
import rpy2.robjects.numpy2ri 
rpy2.robjects.numpy2ri.activate() 
ro.r("Axial_Data <- read.csv('axial_slice_ROI.csv', header = FALSE)") 
print(ro.r('max(Axial_Data, na.rm = TRUE)')) 
ro.r('Axial_Data <- as.matrix(Axial_Data)') 
ro.r("library(radiomics)") 
ro.r("library('glcm')") 
ro.r("library('raster')") 

## get first order statistics 
ro.r("first_order <- calc_features(Slice_Data)") 
## GLCM 
ro.r("textures <- glcm(raster(Axial_Data), na_opt = 'any', shift=list(c(0,1),c(1,1), c(1,0), c(1,-1)))") 

Надежда, которая помогает всем, кто может иметь аналогичные вопросы в будущем.

Cheers,