给出的是 scikit learn 中经过训练的分类器,例如ARandomForestClassifier
。分类器已经过对大小样本的训练,例如25x25。
如何轻松地将其应用于大图像(例如 640x480)中的所有图块/窗口?
What I could要做的是(前面的代码很慢!)
x_train = np.arange(25*25*1000).reshape(25,25,1000) # just some pseudo training data
y_train = np.arange(1000) # just some pseudo training labels
clf = RandomForestClassifier()
clf.train( ... ) #train the classifier
img = np.arange(640*480).reshape(640,480) #just some pseudo image data
clf.magicallyApplyToAllSubwindoes( img )
我该如何申请clf
到所有 25x25 窗口img
?
也许你正在寻找类似的东西skimage.util.view_as_windows http://scikit-image.org/docs/dev/api/skimage.util.html#skimage.util.view_as_windows。请务必阅读文档末尾有关内存使用的警告。
如果使用view_as_windows
对您来说这是一种经济实惠的方法,您可以通过重塑返回的数组来神奇地从图像中的所有窗口生成测试数据,如下所示:
import numpy as np
from skimage import io
from skimage.util import view_as_windows
img = io.imread('image_name.png')
window_shape = (25, 25)
windows = view_as_windows(img, window_shape)
n_windows = np.prod(windows.shape[:2])
n_pixels = np.prod(windows.shape[2:])
x_test = windows.reshape(n_windows, n_pixels)
clf.apply(x_test)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)