我有一组 2D 图像; [n x w x h] 数组,n 是图像数量。我想从每个二维图像中提取补丁。 2D 图像不会按补丁大小均等划分(这意味着我应该使用填充)。我不想要重叠的补丁。为此,我在 skimage 和 sklearn 中遇到了两个函数:view_as_window() 和 extract_patches_2d()。我的问题是,
由于您想从 2D 图像中提取面片,因此
sklearn.feature_extraction.image.extract_patches_2d
是正确的选择,因为它只执行此操作,而不执行其他操作,并且您可以期望它已针对该任务进行了优化。
虽然类似
skimage.util.view_as_windows
的内容对于您感兴趣的 2D 案例可能会产生类似的结果,但这并不是它编写的具体目的。此函数提供 n 维数组的滚动窗口视图,尽管在您的情况下“n”可能是 2,但它适用于任何 n。
因此,
skimage.util.view_as_windows
可能没有针对您想要的用例进行优化,或者将来可能会受到额外逻辑的影响,这只会对您的用例产生负面影响。
即使
skimage.util.view_as_windows
最终在后台调用 skimage.util.view_as_windows
,使用更具体的调用仍然有意义,以便从未来潜在的优化中受益或避免与您的用例产生分歧。