首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Opencv cuda重新映射错误cv.cuda.remap(raw,mapx,mapy,cv.INTER_CUBIC,borderMode=cv.COLOR_RGB2GRAY)

Opencv cuda重新映射错误cv.cuda.remap(raw,mapx,mapy,cv.INTER_CUBIC,borderMode=cv.COLOR_RGB2GRAY)
EN

Stack Overflow用户
提问于 2020-01-28 12:35:09
回答 1查看 1.2K关注 0票数 1

我已经安装了opencv‘4.2.0dev’,这是来自https://jamesbowley.co.uk/accelerate-opencv-4-2-0-build-with-cuda-and-python-bindings/的一个已经构建的包(https://jamesbowley.co.uk/downloads/).I正在尝试使用cv2.cuda.remap,但它正在抛出错误,如下所示

代码语言:javascript
复制
cv.cuda.remap(raw, mapx, mapy, cv.INTER_CUBIC, borderMode=cv.COLOR_RGB2GRAY)
TypeError: Expected Ptr<cv::UMat> for argument 'src' 

我的代码

代码语言:javascript
复制
import numpy
import cv2 as cv
import numpy as np
npTmp = np.random.random((1024, 1024)).astype(np.float32)
npMat1 = np.stack([npTmp,npTmp],axis=2)
raw= cv.cuda_GpuMat()
raw.upload(npMat1)
a=np.array()
mapx = numpy.ndarray(shape=(640, 480, 1),
                           dtype='float32')
mapy = numpy.ndarray(shape=(640, 480, 1),
                           dtype='float32')

cv.cuda.remap(raw,a, mapx, mapy, cv.INTER_CUBIC, borderMode=cv.COLOR_RGB2GRAY)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-30 05:01:09

我知道答案了!

经修订的守则:

代码语言:javascript
复制
sz = (1024,1024,3)
npMat = (np.random.random(sz)*255).astype(np.uint8)
cuMat = cv.cuda_GpuMat(npMat)
npMapX = np.random.rand(sz[0],sz[1]).astype('float32')
npMapY = np.random.rand(sz[0],sz[1]).astype('float32')

cuMapX = cv.cuda_GpuMat(npMapX)
cuMapY = cv.cuda_GpuMat(npMapY)

然后,您应该能够重新映射任何一个

代码语言:javascript
复制
cuDst = cv.cuda_GpuMat(cuMat.size(),cuMat.type())
cv.cuda.remap(cuMat,cuMapX,cuMapY,dst=cuDst,interpolation=cv.INTER_LINEAR)

代码语言:javascript
复制
cuDst = cv.cuda.remap(cuMat,cuMapX,cuMapY, interpolation=cv.INTER_LINEAR)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59948913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档