在python中高效地从图像中提取一定大小的补丁
我有一个图像,我想从中提取不同大小的正方形补丁 我需要密集的补丁,也就是说,我需要在图像中的每个像素上都有一个补丁 例如,如果图像为在python中高效地从图像中提取一定大小的补丁,python,image,image-processing,Python,Image,Image Processing,我有一个图像,我想从中提取不同大小的正方形补丁 我需要密集的补丁,也就是说,我需要在图像中的每个像素上都有一个补丁 例如,如果图像为100x100,而面片大小为64 结果将是10000大小为64x64 例如,这些补丁与我们用于过滤操作的补丁相同 如果有边界,我想镜像图像 使用python提取补丁最有效的方法是什么 谢谢我想你在找这样的东西: sklearn 您可能需要查看和: 撇渣 将Stefan van der Walt的答案稍微扩展一下: 安装撇渣器 在Ubuntu上 $ sudo apt-
100x100
,而面片大小为64
结果将是10000
大小为64x64
例如,这些补丁与我们用于过滤操作的补丁相同
如果有边界,我想镜像图像
使用python提取补丁最有效的方法是什么
谢谢我想你在找这样的东西: sklearn 您可能需要查看和: 撇渣 将Stefan van der Walt的答案稍微扩展一下: 安装撇渣器 在Ubuntu上
$ sudo apt-get install python-skimage
或
文档中的示例
这个问题太模糊了——你能提供一些细节吗?@Stefan van der Walt,现在好些了吗?如果仍然有一些困惑,请让我知道,虽然,这是非常好的,但它仍然不能解决边界像素的问题,其中需要镜像。它只是在图像中滚动,您可以使用
skimage.util.pad
预先添加首选边界。+1对于skimage.util.pad
,我需要在任意位置进行补片,有时在边缘附近,当我离开图像时,我想要零。
$ sudo apt-get install python-skimage
$ pip install scikit-image
>>> from skimage.util import view_as_windows
>>> import numpy as np
>>> A = np.arange(4*4).reshape(4,4)
>>> A
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
>>> window_shape = (2, 2)
>>> B = view_as_windows(A, window_shape)
>>> B[0]
array([[[0, 1],
[4, 5]],
[[1, 2],
[5, 6]],
[[2, 3],
[6, 7]]])
>>> B
array([[[[ 0, 1],
[ 4, 5]],
[[ 1, 2],
[ 5, 6]],
[[ 2, 3],
[ 6, 7]]],
[[[ 4, 5],
[ 8, 9]],
[[ 5, 6],
[ 9, 10]],
[[ 6, 7],
[10, 11]]],
[[[ 8, 9],
[12, 13]],
[[ 9, 10],
[13, 14]],
[[10, 11],
[14, 15]]]])