3
我現在正在使用numpy和scipy在python中進行圖像處理。我有一段可以放大圖像的代碼,但不知道這是如何工作的。任何人都可以請解釋這個python代碼如何逐行工作?
所以請一些python/numpy的專家在python中逐行解釋一下。我總是渴望學習。
import numpy as N
import os.path
import scipy.signal
import scipy.interpolate
import matplotlib.pyplot as plt
import matplotlib.cm as cm
def enlarge(img, rowscale, colscale, method='linear'):
x, y = N.meshgrid(N.arange(img.shape[1]), N.arange(img.shape[0]))
pts = N.column_stack((x.ravel(), y.ravel()))
xx, yy = N.mgrid[0.:float(img.shape[1]):1/float(colscale),
0.:float(img.shape[0]):1/float(rowscale)]
large = scipy.interpolate.griddata(pts, img.flatten(), (xx, yy), method).T
large[-1,:] = large[-2,:]
large[:,-1] = large[:,-2]
return large
非常感謝。
Python中每個語句的縮進都很重要。請修正您的代碼片段的格式。 – Johnsyweb 2011-05-22 05:54:02
感謝和抱歉。我添加了這些導入..以清除它 – 2011-05-22 06:03:50
請注意,在這裏使用'griddata'不是最有效的選項,因爲網格總是矩形的。更有效的選項是:'scipy.interpolate.RectBivariateSpline'和'scipy.ndimage.zoom'。 – 2011-05-31 08:24:50