2016-06-27 4 views
-2

Ich bin verwirrt über die verschiedenen Python-Datentypen. Ich habe einen Gesichtserkennungsalgorithmus in MATLAB geschrieben, ich möchte es in Python wiederholen. Ich bleibe dabei, meine Bilder zu verkleinern. Wie mache ich das? Kann jemand mich mit den Dingen verbinden, die ich lesen muss, um den Unterschied in den Funktionen zwischen MATLAB in Python zu verstehen? Wie MATLAB bekam imresize, aber Python hat was?Python, wie man Bilder in der Größe ändert?

Gibt es etwas wie Import all_matlab_functions, damit ich in Matlab Sprache python?

Ich kann nicht glauben, dass ich so hart kämpfen. Hilfe! Mein Code unten zeigt, wie dumm ich bin mit Python derzeit.

%matplotlib inline 

import matplotlib.image as mpimg 
import glob 

import matplotlib.pyplot as plt 

image_list = [] 
for filename in glob.glob('<directory>.pgm'): 
    im = mpimg.imread(filename) 
    image_list.append(im) # read all image 

from PIL import Image 
haha = image_list[1].resize((10 10), resample=0) # try to resize image BUT FAIL 
+2

So funktioniert Python nicht. Es ist kein 1 zu 1 Matlab zu etwas anderem. Matlab ist eine Sache, Python ist eine andere Sache. Es kommt einfach vor, dass die Sprachen so gestaltet sind, dass sie Ähnlichkeiten aufweisen. Aber wenn Sie etwas in Python machen wollen, schauen Sie nicht, wie Sie es in Matlab machen und übersetzen, finden Sie es in Python. –

+0

Related: http://stackoverflow.com/questions/273946/how-do-i-resize-an-image-using-pil-and-maintain-its-aspect-ratio –

+0

Sie stellen mehrere verschiedene Fragen, keine von welche sind am Thema. Bitte erläutern Sie genau, was Sie zu tun versuchen, was Sie getan haben und in welcher Weise es nicht funktioniert. Außerdem ist IPython nur eine Schnittstelle für die Python-Sprache, der Code ist in der Sprache Python geschrieben. – TheBlackCat

Antwort

0

mit der jupyter qt-Konsole Interpreter oder jupyter Notebook können Sie die Umgebung von Interpreter Magie% pylab inline so eingestellt, dass Bilder inline angezeigt und die matplotlib.pylab Namespace und numpy Namespace wird in den aktuellen importiert werden Namensraum. All dies bedeutet jedoch, dass Sie die Befehle nicht zum Beispiel mit matplotlib.pylab.plot oder plt.plot voranstellen müssen. Sie können einfach plot() verwenden.

%pylab inline 
x = linsapce(1,2*pi,100) 
y = sin(x) 
plot(x,y) 

matplotlib soll für Plotten gute Werkzeuge geben, die Plotten ähnlich aussehen wie Matlab, numpy für Arrays und Mathematik, und scipy gibt Ihnen Werkzeuge für komplexere Funktionen. Zum Beispiel kann scipy.misc.imresize tun, was Sie suchen:

http://docs.scipy.org/doc/scipy-0.13.0/reference/generated/scipy.misc.imresize.html

Wenn Sie für einen direkten Weg, um Ihre Matlab-Programme außerhalb von Matlab zu laufen, möchten Sie vielleicht stattdessen Octave versuchen.

https://www.gnu.org/software/octave/