在OpenCV中,可以通过重复使用预先分配的Mat对象来调整大小。下面是一个使用Python的示例代码:
import cv2
import numpy as np
# 创建预先分配的Mat对象
width, height = 640, 480
pre_allocated_mat = np.zeros((height, width, 3), dtype=np.uint8)
# 加载图像
image = cv2.imread('input.jpg')
# 调整大小
resized_image = cv2.resize(image, (width, height), dst=pre_allocated_mat)
# 显示调整后的图像
cv2.imshow('Resized Image', resized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的代码中,我们首先创建一个预先分配的Mat对象 pre_allocated_mat
,它的大小与我们想要调整的图像大小相同。然后,我们使用cv2.resize()
函数将输入图像调整为指定的宽度和高度,并将结果存储在预先分配的Mat对象中。最后,我们使用cv2.imshow()
函数显示调整后的图像。
这种方法的好处是我们可以避免在每次调整大小时重新分配内存,并且可以重复使用相同的Mat对象进行多次调整。这对于需要频繁调整大小的应用程序来说是非常有用的,可以提高性能。