gpt4 book ai didi

python - 使用 patchify 库创建补丁时出现的问题

转载 作者:行者123 更新时间:2023-12-05 04:48:10 35 4
gpt4 key购买 nike

我正在使用 patchify 库来创建更大的 .jpg 图像的补丁。我正在使用以下代码,摘自此 YT 视频: https://www.youtube.com/watch?v=7IL7LKSLb9I&ab_channel=DigitalSreeni

当 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)

但是我收到以下错误:

ValueError: 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")

因为我在这些事情上还很陌生,所以我无法解决这个错误。

任何帮助将不胜感激!!

最佳答案

我想出了解决问题的方法,因为这是一个简单的错误。基本上,我只有一张图片,因此使用 for 循环遍历图片没有意义。

然后,对于图像本身,因为它是 BGR,所以有必要修改表示补丁大小的数组,因此它应该是 (224,224,3)

最后,为了保存补丁,我在我做的另一个问题中使用@Rotem 提供的更正代码。

最终结果是这样的:

img = cv2.imread("test.jpg")
patches_img = patchify(img, (224,224,3), 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, 0, :, :, :]
if not cv2.imwrite('patches/images/' + 'image_' + '_'+ str(i)+str(j)+'.jpg', single_patch_img):
raise Exception("Could not write the image")

关于python - 使用 patchify 库创建补丁时出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68224588/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com