所以,我从大学里得到了一个与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
答案 0 :(得分:0)
是的,您可以在OpenCV中使用GPU模块,但不幸的是,只能在C ++中使用。没有适用于Python的包装器。
解决方案: