我在做一些基本的人臉檢測OpenCV中,和每一個示例代碼我看他們轉換爲灰度圖像,然後進行對灰度臉檢測...爲什麼要轉換爲灰度opencv?
起初我還以爲這是出於性能的考慮,但我做了一個比較,發現沒有顯着的性能提升。
此代碼:
faceCascade.detectMultiScale(*image, *faces, 1.1, 3, CASCADE_SCALE_IMAGE, Size(60,60));
關於執行與此相同的代碼:
Mat gray;
cvtColor(*image, gray, COLOR_BGR2GRAY);
faceCascade.detectMultiScale(gray, *faces, 1.1, 3, CASCADE_SCALE_IMAGE, Size(60,60));
因此,這引出了一個問題,爲什麼大家都轉換爲灰度OpenCV中?
謝謝
那麼爲什麼detectMultiScale仍然工作,即使我給它BGR? – g00dnatur3
你給它一個指針。你有沒有嘗試用圖像而不是指針餵它? 你發給我的文件也說CV_8U而不是CV_8U3 – m3h0w
其實我做了更多的挖掘。在這裏你可以找到你的後續問題的答案:http://answers.opencv.org/question/67416/is-grayscale-image-still-required-in-cascadeclassifierdetectmultiscale/ – m3h0w