我正在使用 patchify 库来创建更大的 .jpg 图像的补丁。我使用以下代码,取自此 YT 视频:
当 YT 人员读取他的图像(12 张 tiff 图像)时,他会得到 large_image_stack 变量的以下大小:(12, 768, 1024),即 12 张图像,每张图像的尺寸均为 768x1024。
我有一个 3000x4000 的 jpg 图像,我得到的 large_image_stack 变量的大小是 (3000, 4000, 3)。然后我运行代码...
import numpy as np
from matplotlib import pyplot as plt
from patchify import patchify
import cv2
large_image_stack = cv2.imread("test.jpg")
for img in range(large_image_stack.shape[0]):
large_image = large_image_stack[img]
patches_img = patchify(large_image, (224,224), step=224)
for i in range(patches_img.shape[0]):
for j in range(patches_img.shape[1]):
single_patch_img = patches_img[i,j,:,:]
cv2.imwrite('patches/images/' + 'image_' + str(img)+ '_' + str(i)+str(j)+ '.jpg', single_patch_img)
但我收到以下错误:
值错误:window_shape
太大了
查看 patchify 库中的 view_as_windows.py,我看到以下内容:
arr_shape = np.array(arr_in.shape)
window_shape = np.array(window_shape, dtype=arr_shape.dtype)
if ((arr_shape - window_shape) < 0).any():
raise ValueError("`window_shape` is too large")
由于我对这些事情还很陌生,所以我无法解决这个错误。
任何帮助将不胜感激!