2017-03-10 77 views

回答

0
cv::Mat Whiten(cv::Mat image) 
{ 
    image.convertTo(image, CV_32F); 

    cv::Mat mu, sigma; 
    cv::meanStdDev(image, mu, sigma); 

    std::vector<cv::Mat> channels; 
    cv::split(image, channels); 
    for (int i = 0; i < channels.size(); ++i) 
     channels[i] = (channels[i] - mu.at<double>(i, 0))/sigma.at<double>(i, 0); 
    cv::merge(channels, image); 

    return image; 
} 
0

想要什麼(我知道)最接近的選項是使用cv::meanStdDev(它可以處理多通道圖像),然後手動減去平均值並按每個通道的方差進行分割。

相關問題