![](/img/trans.png)
[英]Why would cv2.COLOR_RGB2GRAY and cv2.COLOR_BGR2GRAY give different results?
[英]Opencv cuda python remap error cv.cuda.remap(raw, mapx, mapy, cv.INTER_CUBIC, borderMode=cv.COLOR_RGB2GRAY)
我已经安装了OpenCV 4.2.0开发“,已建成包从https://jamesbowley.co.uk/accelerate-opencv-4-2-0-build-with-cuda-and-python-bindings/ ( HTTPS ://jamesbowley.co.uk/downloads/)。我正在尝试使用 cv2.cuda.remap 但它抛出如下错误
cv.cuda.remap(raw, mapx, mapy, cv.INTER_CUBIC, borderMode=cv.COLOR_RGB2GRAY)
TypeError: Expected Ptr<cv::UMat> for argument 'src'
我的代码
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)
我得到了答案!!!
更新代码:
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)
然后你应该能够重新映射
cuDst = cv.cuda_GpuMat(cuMat.size(),cuMat.type())
cv.cuda.remap(cuMat,cuMapX,cuMapY,dst=cuDst,interpolation=cv.INTER_LINEAR)
或者
cuDst = cv.cuda.remap(cuMat,cuMapX,cuMapY, interpolation=cv.INTER_LINEAR)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.