我正在学习教科书iOS Application Development with OpenCV 3,其中一个示例使用函数cv::xphoto::autowbGrayworld。我正在使用OpenCV3.2,但它似乎没有这个功能。
是否有其他选择,或者我必须使用opencv 3.1才能使用该功能?
发布于 2017-06-28 16:24:52
我正在读这本书的同一部分。使用OpenCV 3.2时也会出现相同的错误。
在检查OpenCV文档之后。
3.1:xphoto.html#gafaaa144cd2628bf65b115c538cfb50fb 3.2:1GrayworldWB.html
显然,我们应该使用GrayWorldWB代替。就像这样:
switch (originalMat.type()) {
case CV_8UC1:
// Mono color to RGB
cv::cvtColor(originalMat, originalMat, cv::COLOR_GRAY2RGB);
break;
case CV_8UC4:
// RGBA to RGB
cv::cvtColor(originalMat, originalMat, cv::COLOR_RGBA2RGB);
// FALL_THROW
case CV_8UC3:
// Adjust the whtie balance
cv::xphoto::createGrayworldWB()->balanceWhite(originalMat, originalMat);
break;
default:
break;
}我可以看到,当我使用白过载照片(与RGB或RGBA通道)时,效果很好。如果平衡器不能工作,请确保图像颜色模式不是灰色。
https://stackoverflow.com/questions/44572415
复制相似问题