我使用以下函数在更大的图像上滑动并拉出 (64, 64, 3) 的窗口以从 CNN 进行分类。
def find_vehicles(image_name, classifier):
window_width, window_height = (64, 64)
step_size = 64
image = cv2.imread(image_name)
image = np.array(image)
temp = image
image = image / 255.0
for i in range(0, image.shape[1] - window_width, step_size):
for j in range(0, image.shape[0] - window_height, step_size):
window = image[i:i + window_width, j:j + window_height, :]
print(window.shape)
但经过 25 次迭代后,窗口大小缩小到 (55, 64, 3),最终缩小到 (0, 64, 3)。我究竟做错了什么?输入图像的形状为(375, 1242, 3)
最佳答案
嗯,这是一个愚蠢的错误。当我发布这个问题时,我意识到我正在以宽度 x 高度的形式读取图像,而我应该以高度 x 宽度的形式读取图像。改变
window = image[i:i + window_width, j:j + window_height, :]
至
window = image[j:j + window_height, i:i + window_width, :]
解决了我的问题。
关于python - python中的滑动窗口改变形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58254684/