0
我正在关注教科书iOS Application Development with OpenCV 3
,其中一个示例使用功能cv::xphoto::autowbGrayworld
。我使用的是opencv 3.2,但它似乎没有这个功能。OpenCV xphoto功能
有没有其他选择,或者我将不得不使用opencv 3.1才能使用该功能?
我正在关注教科书iOS Application Development with OpenCV 3
,其中一个示例使用功能cv::xphoto::autowbGrayworld
。我使用的是opencv 3.2,但它似乎没有这个功能。OpenCV xphoto功能
有没有其他选择,或者我将不得不使用opencv 3.1才能使用该功能?
我正在读这本书的同一部分。当我使用OpenCV 3.2时出现同样的错误。
检查OpenCV文档后。
3.1: http://docs.opencv.org/3.1.0/de/daa/group__xphoto.html#gafaaa144cd2628bf65b115c538cfb50fb
3.2: http://docs.opencv.org/trunk/d7/d71/classcv_1_1xphoto_1_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频道)。如果平衡器不起作用,请确保图像颜色模式不是灰色。