在研究DIBR时发现自己读取的灰度图像的像素值和参照别人代码里的同一位置的像素值不一样,这也导致了后续的计算错误。上网搜了一下发现问题主要出在了图像的读取上。
我的代码用的是imread()函数,而且是imread(filename),没有指定以什么方式读取灰度图像,但是我参考的代码读取灰度图像是用的cvLoadImage(filename,0)。所以imread函数的第二个参数是非常重要的。
对于cvLoadImage来说,第二个参数为-1表示默认读取原通道数,为0表示强制转化为读取灰度图,为1表示读取彩色图。
对于imread来说,第二个参数=0返回灰色图像,>0返回彩色图像,<0目前还没理解。
具体可以参看下面链接里的解释说明。
cvLoadImage函数参数设置
imread函数参数设置
opencv图像读取
最新推荐文章于 2024-08-22 16:23:21 发布