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頻道)。如果平衡器不起作用,請確保圖像顏色模式不是灰色。