2016-10-25 2 views
1

Ich habe eine unregelmäßige Region von Interesse von einem MRI-Bild, das ich ausgewählt habe. Ich möchte Co-Vorkommen-Analyse auf dem Bild mit skimage.feature.greycomatrix Bibliothek tun. Mein ROI ist jedoch unregelmäßig. Wenn man Nullen im num- py-Array des Bildes belässt, würde dies zu einer inkorrekten Grau-Kookkurrenzanalyse führen, und ich habe sie zu NaN gemacht. Die greycomatrix ist jedoch nicht in der Lage, ein numpiges Array mit NaN zu analysieren. Hat jemand dieses Problem erlebt oder eine Lösung gefunden?Greycomatrix in Python einschließlich NaN

+0

Ich glaube nicht * Python * selbst hat 'Greycomatrix'. Meinst du ['skimage.feature.graycomatrix' aus' sckit-image'] (http://scikit-image.org/docs/dev/auto_examples/plot_glcm.html)? Wenn nicht, von welcher Bildverarbeitungsbibliothek erhalten Sie die Funktion derzeit? –

+0

Hallo Warren, ja ich importiere skimage.feature.greycatrix. Daher frage ich mich, ob es einen Weg gibt, diese Bibliothek auf Bildern zu verwenden, die NaNs/irreguläre ROIs enthalten, oder ob es eine andere Greycomtrix-Bibliothek gibt, die verwendet werden kann. Ich erinnere mich, gelesen zu haben, dass Matlab mit NaNs in den Berechnungen umgehen kann. Vielen Dank. –

Antwort

1

In Bezug auf diese Frage scheint es nicht so, als ob die Greycomtrix-Bibliothek in skimage mit NaN-Werten oder unregelmäßigen Formen umgehen könnte, sondern nur eine "Ganzbild" -Analyse.

daran vorbei, entschied ich mich für die Bildanalyse in der ‚R‘ zu tun, indem die Matrix als csv exportieren sie dann in R Import mit:

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)))") 

Hoffnung, dass jemand hilft, die ähnliche Probleme haben in der Zukunft.

Prost,

Verwandte Themen