Черное пространство в изображении GLCM

Я пытаюсь вычислить некоторые текстурные меры, используя GLCM, описанный Haralick (энергия, однородность и т. Д.) Для серии 4-полосных (R, G, B, NIR) аэрофотоснимков, которые у меня есть. Я пробовал это на подмножестве, но в итоге я получил изображение, которое в основном пустое. Мое настоящее понимание заключается в том, что оно связано с параметром greyscaling и levels но я не могу понять это.

Моя дата очень большая (несколько ГБ), поэтому я стараюсь быть эффективными с помощью модуля RIOS (считывает изображение в виде массива с размером в 400 × 400 × nbands, обрабатывает данные и записывает их на выходное изображение).

Здесь можно найти сцену ввода (200 МБ).

Мое выходное изображение выглядит (это может быть трудно увидеть, поскольку черные пиксели очень малы):

вывод

Мой код:

 #Set up input and output filenames infiles = applier.FilenameAssociations() infiles.image1 = "infile.tif" outfiles = applier.FilenameAssociations() outfiles.outimage = "outfile.tif" controls = applier.ApplierControls() controls.progress = cuiprogress.CUIProgressBar() # I ultimately want to use a window here # which RIOS easily allows you to set up. # For a 3x3 the overlap is 1, 5x5 overlap is 2 etc #controls.setOverlap(4) def doFilter(info, infiles, outfiles, controls=controls): grayImg = img_as_ubyte(color.rgb2gray(infiles.image1[3])) g = greycomatrix(grayImg, distances=[1], angles=[0, np.pi/4, np.pi/2, 3*np.pi/4], symmetric=True, normed=True) filtered = greycoprops(g, 'energy') # create 3d image from 2d array outfiles.outimage = numpy.expand_dims(filtered, axis=0) applier.apply(doFilter, infiles, outfiles, controls=controls) 

Очевидно, что здесь что-то не так, потому что мой результат не такой, как я ожидаю. Я предполагаю, что это связано с параметром «levels». Я указал на объяснение здесь: черная линия в результатах GLCM, которая хорошо объясняет параметр, но я не могу улучшить свой результат.

Может ли кто-нибудь объяснить мне, почему мой результат выходит, как показано, и как я могу его исправить?

One Solution collect form web for “Черное пространство в изображении GLCM”

В приведенном ниже коде вычисляется GLCM, соответствующая смещению «1-пиксельное смещение вверх» из диапазона NIR вашего изображения tif:

 import numpy as np from skimage import io from skimage.feature import greycomatrix, greycoprops x = io.imread('m_2909112_se_15_1_20150826.tif') nir = x[:, :, 3] glcm = greycomatrix(nir, [1], [np.pi/2], levels=256, normed=True, symmetric=True) 

Вот как выглядит nir :

Группа NIR

Эффект установки параметра, normed на True заключается в том, что вычисленный GLCM делится на его общую сумму, и в результате элементы glcm имеют довольно малые значения. Вот пример:

 In [48]: np.set_printoptions(precision=3) In [49]: glcm[:5, :5, 0, 0] Out[49]: array([[ 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00], [ 0.000e+00, 2.725e-03, 6.940e-05, 3.725e-05, 2.426e-05], [ 0.000e+00, 6.940e-05, 1.709e-04, 4.103e-05, 2.216e-05], [ 0.000e+00, 3.725e-05, 4.103e-05, 4.311e-04, 4.222e-05], [ 0.000e+00, 2.426e-05, 2.216e-05, 4.222e-05, 5.972e-05]]) 

Чтобы отобразить glcm в качестве изображения, вам нужно перемасштабировать его, например, например:

 from skimage.exposure import rescale_intensity scaled = rescale_intensity(glcm[:,:,0,0]) io.imshow(scaled) 

масштабируется

  • newton fractal: ошибка mathoverflow
  • Установка данных в систему ODE с использованием Python через Scipy & Numpy
  • Существует ли «улучшенный» метод numpy / scipy dot?
  • Динамическое добавление к Pandas Dataframe
  • Как разделить ndarray на основе массива индексов?
  • маскировать только в том случае, когда последовательные nans превышают x
  • Как использовать datasets.fetch_mldata () в sklearn?
  • Серия 2D-рядов 3D-массива в numpy
  •  
    Interesting Posts for Van-Lav

    AssertionError: несовместимые размеры: аргумент «высота» должен быть длиной 2 или скалярным (Matplotlib, Python 2.7, диаграммы)

    Как добавить случайные задержки между запросами, отправленными в Google, чтобы избежать блокировки в python

    Приложение Python / Kivy работает только один раз

    Отображение данных ForeignKey на странице изменения / добавления admin в Django

    Неустранимая ошибка C1083: Не удается открыть файл include: «Carbon / Carbon.h»: нет такого файла или каталога

    Торнадо: Определить / отслеживать соединения веб-карт?

    Поставщик данных Python unittest

    Есть ли лучший способ найти наиболее распространенное слово в списке (только для Python)

    Как перенаправить вывод регистратора в текстовый виджет PyQt

    Установите среду «научный python»: OS X 10.7 + Numpy + Scipy + Matplotlib

    Python подчеркивает как параметр функции

    Как я могу форматировать стеки стека исключения в протоколе Python?

    Метаклассы и __slots__?

    Значительные накладные расходы на Django apache и встроенный сервер dev

    Производительность S / Python Socket?

    Python - лучший язык программирования в мире.