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

时间:2018-12-28 11:56:13

标签: 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()

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

image = cv2.UMat(cv2.resize(image, (0, 0), fx=0.5, fy=0.5)) # Resize image by half

1 个答案:

答案 0 :(得分:0)

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

解决方案