6-2Laplacian_gpu.py

000: import cv2
001:
002: def __main():
003: gpuImg = cv2.cuda_GpuMat()
004: img = cv2.imread(‘IMG_0260.JPG’)
005:
006: gpuImg.upload(img)
007: gpuImg = getGpuResize(gpuImg)
008:
009: # C1画像にしないとエラーになる
010: gpuImg = cv2.cuda.cvtColor(gpuImg, cv2.COLOR_BGR2GRAY)
011: # ここで処理を実行する
012: “””CPUを使用”””
013: filter = cv2.cuda.createLaplacianFilter(srcType=cv2.CV_8UC1, dstType=cv2.CV_8UC1, ksize=3)
014: gpuDst = cv2.cuda_Filter.apply(filter, gpuImg)
015:
016: dst = gpuDst.download()
017:
018: cv2.imshow(‘Final result(GPU)’, dst)
019: cv2.waitKey(0)
020:
021: cv2.destroyAllWindows()
022:
023: def getGpuResize(gpuImg):
024: “””GPUを使用”””
025: basePixSize = 1280 # 縦横で大きい辺の変更したいサイズ
026: width, height = gpuImg.size()
027:
028: largeSize = max(height, width) # 大きい方の辺のサイズ
029: resizeRate = basePixSize / largeSize # 変更比率を計算
030:
031: gpuImg = cv2.cuda.resize(gpuImg, (int(width * resizeRate), int(height * resizeRate)))
032:
033: return gpuImg
034:
035: if __name__ == ‘__main__’:
036: print(cv2.__version__)
037:
038: __main()