Ученые-исследователи и ученые часто используют MatLab и Octave в области связи и для обработки космических изображений, анализа ДНК, обработки изображений для обнаружения рака и опухолей.

MatLab или Octave удобны для ученых, чтобы легко работать с изображениями, а форма кодирования удобна для них, чтобы они могли легко использовать математические навыки без особых знаний в области программирования.

В MatLab или Octave мы сохраняем файлы с расширением .mat. Разрыв между исследованиями и приложениями заключается в том, что большая часть использования Data Science и машинного обучения выполняется на Python. чтобы использовать результаты исследований, модели, которые мы создаем в Python, могут быть приспособлены к файлам .mat.

Python предоставляет пакет h5py , он обеспечивает чтение и запись файлов с расширением .mat.

HDF5 (иерархический формат данных 5)HDF5 позволяет хранить огромные объемы числовых данных и легко манипулировать этими данными из NumPy. Например, вы можете нарезать многотерабайтные наборы данных, хранящиеся на диске, как если бы они были настоящими массивами NumPy. Тысячи наборов данных могут храниться в одном файле, классифицироваться и маркироваться по вашему желанию.

Установка

Настоятельно рекомендуется использовать предварительно собранную версию h5py из дистрибутива Python, диспетчера пакетов для конкретной ОС или предварительно созданное колесо из PyPI.

Однако имейте в виду, что в большинстве готовых версий отсутствует поддержка MPI, и что они созданы для конкретной версии HDF5. Если вам требуется поддержка MPI или более новые функции HDF5, вам нужно будет выполнить сборку из исходного кода.

После установки h5py следует запустить тесты, чтобы убедиться, что все установлено правильно. Это можно сделать в интерпретаторе python через:

import h5py
h5py.run_tests()

В Python 2.6 для запуска тестов необходимо установить unittest2.

Готовая установка (рекомендуется)

Предварительную сборку h5py можно установить с помощью многих дистрибутивов Python, менеджеров пакетов для конкретной ОС или с помощью колес h5py.

Дистрибутивы Python

Если вы еще не используете дистрибутив Python, мы рекомендуем Anaconda/Miniconda или Enthought Canopy, оба из которых поддерживают большинство версий Microsoft Windows, OSX/MacOS и различные дистрибутивы Linux. Установку h5py можно выполнить из командной строки с помощью:

$ conda install h5py

для Anaconda/MiniConda и через:

$ enpkg h5py

для навеса.

Колеса

Если у вас уже есть установленный Python (например, загруженный с python.org или поставляемый с вашей ОС), то в Windows, MacOS/OSX и Linux на компьютерах Intel можно установить предварительно созданные колеса h5py через pip из PyPI. :

$ pip install h5py

Открытие и создание файлов

f = h5py.File(filename,mode)

режим:

"р" только для чтения

только "ж" писать

«а» читать и писать

Пример:

Создание словаря Python из .mat и вывод изображения в .mat с помощью Seaborn

import os
import h5py as h5
import numpy as np
import seaborn as sns
import pandas as pd
#parse each mat structure into a python patient object
class Patient(object):
    PID = ""
    image=""
    label=""
    tumorBorder=""
    tumorMask=""
    
    def __init__(self, PID, image, label,tumorBorder,tumorMask):
        self.PID = PID
        self.image = image
        self.label = label
        self.tumorBorder=tumorBorder
        self.tumorMask=tumorMask
file_path="C:/Users/HOME/Desktop/PRASANTH/brainTumorDataPublic_1766/"
#reading mat file using hdf reader
f=h5.File(os.path.join(file_path,"10.mat"),'a')
list(f.items()) #object keys /cjdata
#list of Obkect keys  ['PID', 'image', 'label', 'tumorBorder', 'tumorMask']
list(f['/cjdata'].keys())
p=Patient('','','','','')
p.image=np.mat(f['/cjdata/image'])
p.PID=np.array(f['/cjdata/PID'])
p.label=np.array(f['/cjdata/label'])
p.tumorBorder=np.mat(f['/cjdata/tumorBorder'])
p.tumorMask=np.mat(f['/cjdata/tumorMask'])
sns.heatmap(p.image)
sns.heatmap(p.tumorMask)

Для получения дополнительной информации о том, как использовать изображения и файлы .mat в Python

а для практического использования посетите страницу Классификация опухолей головного мозга на Github.