我在使用OpenCV python包装器执行以下功能时遇到问题:

img = cv.LoadImage("calib0.jpg")
grayImg = cv.CreateImage((img.width,img.height), img.depth,1)
cv.CvtColor(img,grayImg,cv.CV_BGR2GRAY)
corners = cv.FindChessboardCorners(grayImg,(5,6), cv.CALIB_CB_ADAPTIVE_THRESH + cv.CALIB_CB_NORMALIZE_IMAGE + cv.CALIB_CB_FAST_CHECK )
cv.cornerSubPix(grayImg,corners,(11,11),(-1,-1),(cv.CV_TERMCRIT_ITER | cv.CV_TERMCRIT_EPS, 10, 0.01))

如果在(OSX)的iPython中运行此命令,则会出现以下错误:

TypeError跟踪(最近一次通话)
/用户/ katherinescott / simplecv-git / SimpleCV / sampleimages /在()中
----> 1个cv.cornerSubPix(grayImg,corners,(11,11),(-1,-1),(cv.CV_TERMCRIT_ITER | cv.CV_TERMCRIT_EPS,10,0.01))

TypeError:不是一个numpy数组

我已经尝试过将上述对象强制转换为numpy ndarray的每个排列,但无济于事。我的猜测是,该错误存在于条件标准对象中,但我对要求的内容一无所知。尝试使用OpenCV Python包装器进行校准时,是否还有其他人遇到此问题?我将开始挖掘源代码,以了解我能找到的内容。

最佳答案

cornerSubPix首先是小写字母,它是OpenCV python包装程序的模块内部函数。

我相信你想要cv.FindCornerSubPix:

http://opencv.willowgarage.com/documentation/python/imgproc_feature_detection.html#findcornersubpix

10-06 02:43