Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 刻度误差_Opencv_Python 2.7 - Fatal编程技术网

Opencv 刻度误差

Opencv 刻度误差,opencv,python-2.7,Opencv,Python 2.7,我不熟悉Python和openCV,所以如果这很简单,我提前道歉。 我正在尝试按照深度图代码在。 在下面的代码中,ConvertScale引发以下错误: src.size == dst.size && src.channels() == dst.channels() 我已经花了几天时间,不知道为什么。 任何指点都将不胜感激。 提前谢谢 im_l = cv.LoadImage('C:\Python27\project\captureL6324.png',cv.CV_LOAD_IM

我不熟悉Python和openCV,所以如果这很简单,我提前道歉。 我正在尝试按照深度图代码在。 在下面的代码中,
ConvertScale
引发以下错误:

src.size == dst.size && src.channels() == dst.channels()
我已经花了几天时间,不知道为什么。 任何指点都将不胜感激。 提前谢谢

im_l = cv.LoadImage('C:\Python27\project\captureL6324.png',cv.CV_LOAD_IMAGE_GRAYSCALE)
im_r = cv.LoadImage('C:\Python27\project\captureR6324.png',cv.CV_LOAD_IMAGE_GRAYSCALE)
imsize = cv.GetSize(im_l)
disp = cv.CreateImage(imsize,cv.IPL_DEPTH_16S,1)# to receive Disparity
#run stereo Correspondence-- returns a single channel 16 bit signed disparity
disparity = cv.FindStereoCorrespondenceBM(im_r,im_l,disp,cv.CreateStereoBMState())
#convert to a real disparity by dividing it by 16-- first create variable to hold the  converted scale
real_disparity = cv.CreateImage(imsize,cv.IPL_DEPTH_16S,1)
cv.ConvertScale(disparity, real_disparity, -16,0)
#get the point cloud
depth = cv.CreateImage(cv.GetSize(im_l),cv.IPL_DEPTH_32F,3)
cv.ReprojectIMageTo3D(real_disparity,depth, ReprojectMatrix)

您的问题是,
FindStereoCorrespondenceBM
将结果保存在第三个参数中,但您正在使用返回值,即
None
进行进一步计算。这会导致错误,因为需要特定大小和类型的矩阵

所以只要改变

cv.ConvertScale(disparity, real_disparity, -16,0)

为了运行整个脚本,我还将最后一行更改为

ReprojectMatrix = cv.CreateMat(4,4,cv.CV_32FC1);
cv.ReprojectImageTo3D(real_disparity,depth, ReprojectMatrix)

这个脚本对我来说运行没有错误。但是我还没有检查它是否给出了正确的结果。

Awsome!非常感谢你。在这一点上,理解代码并让它在没有错误的情况下运行不仅仅意味着结果。过几天我会抱怨的。
ReprojectMatrix = cv.CreateMat(4,4,cv.CV_32FC1);
cv.ReprojectImageTo3D(real_disparity,depth, ReprojectMatrix)