在从图像中提取补丁数组的情况下,skimage view_as_window 和 sklearn extract_patch_2d 有什么区别?

问题描述 投票:0回答:1

我有一组 2D 图像; [n x w x h] 数组,n 是图像数量。我想从每个二维图像中提取补丁。 2D 图像不会按补丁大小均等划分(这意味着我应该使用填充)。我不想要重叠的补丁。为此,我在 skimage 和 sklearn 中遇到了两个函数:view_as_window()extract_patches_2d()。我的问题是,

  1. 为什么有两种方法?
  2. 哪一种最适合我的用例?
python image-processing scikit-image
1个回答
0
投票

由于您想从 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
,使用更具体的调用仍然有意义,以便从未来潜在的优化中受益或避免与您的用例产生分歧。

© www.soinside.com 2019 - 2024. All rights reserved.