이미지를 numpy 배열로 저장

문제를 제거하기 위해 도구를 사용해보십시오

이미지를 numpy 배열로 저장

이미지를 numpy 배열에 로드할 수 없고 다음과 같은 오류가 발생합니다...



ValueError: 입력 배열을 모양(175,217,3)에서 모양(100,100,3)으로 브로드캐스트할 수 없습니다.

기능 코드:






X_train = np.ndarray((nb_train_samples, img_rows_orig, img_cols_orig, 3), dtype=np.uint8) Y_train = np.zeros((nb_train_samples,), dtype='uint8') i = 0 j = 0 for label in labels: image_names_train = os.listdir(os.path.join(train_data_dir, label)) total = len(image_names_train) print(label, total) for image_name in image_names_train: img = cv2.imread(os.path.join(train_data_dir, label, image_name), cv2.IMREAD_COLOR) img = np.array([img]) X_train[i] = img Y_train[i] = j if i % 100 == 0: print('Done: {0}/{1} images'.format(i, total)) i += 1 j += 1 print(i) print('Loading done.') np.save('imgs_train.npy', X_train, Y_train) return X_train, Y_train

이 함수는 malaria_cell_classification_code.zip 파일에서 찾을 수 있는 load_data.py 파일의 일부입니다.



https://ceb.nlm.nih.gov/repositories/malaria-datasets/









X_train과 Y_train을 numpy 배열 대신 목록으로 변경하려고 했습니다. 함수는 np.save 메소드에서 멈춥니다.

import cv2 import numpy as np import os 

train_data_dir = ‘/home/ec2-user/SageMaker/malaria-detection-model/malaria/training’
valid_data_dir = ‘/home/ec2-user/SageMaker/malaria-detection-model/malaria/validation’

nb_train_samples = 22045 # training samples
nb_valid_samples = 5513# validation samples
num_classes = 2
img_rows_orig = 100
img_cols_orig = 100

def load_training_data():
labels = os.listdir(train_data_dir)
total = len(labels)

|_+_|

numpy에 이미지를 저장하는 정확하고 표준적인 방법은 무엇입니까?


이미지 크기를 조정한 후 다른 오류가 발생합니다.

X_train = Y_train = list()  
X_train.append(img)
Y_train.append(j)

전체 스크립트는 여기에서 찾을 수 있습니다…

https://gist.github.com/shantanuo/cfe0913b367647890451f5ae3f6fb691

#python #이미지 #numpy #opencv