python - python scikit-learn extract_patches_2d 有跨步选项吗?
问题描述
我在使用 512x512 图像制作补丁时遇到问题。我正在尝试提取步幅为 32 的 64x64 补丁,这是补丁宽度大小的一半。
我发现 scikit-learn extract_patches_2d 函数可以从原始图像中提取 2d 补丁。
当我使用这个函数时,似乎函数提取补丁步幅为 1。
有什么方法可以提取跨步 32 的补丁?
def load_train_data(self):
imgs_row, imgs_col = 512,512
train_list = []
train_img = []
label_list = []
label_img = []
train_path = 'C:\\Users\\Lee Doyle\\unet\\data\\Train'
label_path = 'C:\\Users\\Lee Doyle\\unet\\data\\Label'
######################Traindata################################
print('-' * 30)
print('load train images...')
print('-' * 30)
for i in glob.glob(train_path + '/*.[tT][iI][fF]'):
train_list.append(abspath(i))
print(len(train_list))
for i in train_list:
# print(i)
img = cv2.imread(i, cv2.IMREAD_GRAYSCALE)
# img=cv2.resize(img,(512,512))
#train_img = image.extract_patches_2d(img, (64,64))
train_img.append(img.astype(np.float32)/255.0)
#train_img.append(img.astype(np.float32)/255.0)
train_img = image.extract_patches_2d(img, (64,64))
train_img = np.array(train_img[i])
解决方案
extract_patches_2d 没有 stride 参数(也许您可以将其作为功能请求添加到他们的 github)。
我看到了两种可能的解决方法,您可以编写自己的函数(这很简单),或者您可以在使用该函数后选择所需的补丁。
我会去第一个。
推荐阅读
- javascript - Knockout.js 获取 location.href 对象的属性
- html - VoiceOver 专注于 aria-hidden 元素
- google-chrome - 如何从 chrome 获取 DOM.shadowRootPushed 事件?
- python - 根据特定条件更改熊猫数据框列
- sql - 选择小于另一列中特定值的唯一值
- ruby-on-rails - 单击时 select2-rails 标签下拉菜单不起作用
- sql - 如何在 MS Access VBA 中过滤 3 个文本框,然后根据它们运行报告
- python - 在dask中搜索行后获取列值
- c# - .NET Core 系统异常本地化不起作用
- mysql - 从输入创建 SQLAlchemy mysql 连接字符串