Кодировать метки папок, хранящиеся в массиве numpy, в Python - PullRequest
0 голосов
/ 05 мая 2020

Я работаю над набором данных о Паркинсоне. В моей папке набора данных есть две папки:

В двух из каждой есть две другие папки, но это действительно деталь:

в котором ...:

Теперь в моем коде я выполняю извлечение функций и извлечение меток здесь моя попытка:

(я использовал функцию разделения, чтобы получить имя папки, как вы можете сказать в строке 12.)

from imutils import paths
import numpy as np
import sys
import cv2
import os
import mahotas as mt
data =[]
np.set_printoptions(threshold=sys.maxsize)
pathswave=r'C:\Users\Bsi\Desktop\PFE2\Base2\dataset\wave'
imagePaths = list(paths.list_images(pathswave))
for imagePath in imagePaths:
   label = imagePath.split(os.path.sep)[-2]
   image = cv2.imread(imagePath)
   image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
   image = cv2.blur(image,(3,3))
   image = cv2.resize(image, (200, 200))
   textures = mt.features.haralick(image)
   feat = textures.mean(axis=0)
   data.append(feat)
   data.append(label)
print(np.array(data))

Вот часть вывода:

Теперь есть способ преобразовать две метки, «паркинсон» и «здоровый», в два различных целых числа (предпочтительно 0 и 1, (1 паркинсонизм).

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Возможно, вы захотите использовать словарь:

my_dict = {'healthy': 0, 'parkinsons': 1}

Позже вы можете получить 0 или 1, обращаясь к элементам с помощью get:

my_number=my_dict.get(label)
1 голос
/ 05 мая 2020

3 числа, если их тоже нет :)

x = imagePath.split(os.path.sep)[-2]
label = '0' if x == 'healthy' else '1' if x == 'parkinsons' else '-1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...