Zmień formularz tablicy obrazu
Mam 60 000 obrazów train_images wprowadzonych jako macierz formularzy (28,28,60000). To jest numpy.ndarray. Chcę przekonwertować go na tablicę obrazów 1D, to znaczy każdy obraz jest reprezentowany jako pojedynczy ciąg/tablica liczb, a chcę 60 000 tablic. Innymi słowy, chcę przejść od (28, 28, 60 000) do (60 000, 28 * 28). w Pythonie byłoby to:
images_features = []
for image in images:
imageLine = []
for y in range(len(image)):
for x in range(len(image[0])):
imageLine.append(image[y][x])
images_features.append(imageLine)
W jaki sposób mogę to zrobić? Podejrzewam, że muszę użyć zmiany kształtu, ale nie mogłem dokładnie wymyślić, jak mogę to zrobić.
Oto jak otrzymuję obrazy:
data = scipy.io.loadmat('train.mat')
images = data["train_images"]
Więc „obrazy” to tablica, o której mówię.
Ktoś mi powiedział, że:
„Być może będziesz musiał zmienić osie lub połączyć je, aby uzyskać żądaną funkcjonalność. Polecam również ich zbudowanie na wypadek, gdyby obraz skończył się bokiem. Upewnij się, że pilnie obchodzisz się z osiami, aby uniknąć dalszych problemów”.
Nie mam pojęcia, o co w tym chodzi i jak to uwzględnić.
Czy ktoś może wyjaśnić, co muszę zrobić i dlaczego? (Co on robi
)
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
3 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
zmienia kolejność osi, tak aby wynik był . Ostatnie dwa wymiary można łączyć z przekształcaniem
Musisz bardzo transponować obrazy 28x28, takie jak
to to samo co MATLAB (lub ).
może mieć również postać .
Wybrałem wymiary testowe, aby były małe i aby łatwo odróżnić różne osie.
W sesji Ipython:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Reorganizacja:
train_features_images = train_images.reshape(train_images.shape[0],28,28)
Kreślenie obrazów: