OpenCV中是否可以使用GPU来处理图像

lol*_*lol 6 python opencv gpu

所以,我从大学得到了一个与Python相关的任务。我们需要(从文件夹中)获取一组图像,然后尽快调整它们的大小。所以我设法使用 cv2 调整大小选项来做到这一点。但是,显然我们可以使用 GPU 更快地完成任务。但不幸的是我无法找到使用 openCV 模块做到这一点的最佳方法。

我找到了这段代码,但它不是 openCV 相关的。

import numpy as np
from timeit import default_timer as timer
from numba import vectorize

@vectorize(['float32(float32, float32)'], target='cuda')
def pow(a, b):
    return a ** b

def main():
    vec_size = 100000000

    a = b = np.array(np.random.sample(vec_size), dtype=np.float32)
    c = np.zeros(vec_size, dtype=np.float32)

    start = timer()
    c = pow(a, b)
    duration = timer() - start

    print(duration)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

编辑:我发现了一个叫做“UMat”的东西,使用它有什么好处?我尝试以这种方式在我的代码中使用:

image = cv2.UMat(cv2.resize(image, (0, 0), fx=0.5, fy=0.5)) # Resize image by half
Run Code Online (Sandbox Code Playgroud)

koc*_*ica 4

是的,您可以在 OpenCV 中使用 GPU 模块,但不幸的是只能在 C++ 中使用。Python 没有包装器。

解决方案: