0
是否有內置函數在具有3個通道的cv::Mat
上應用美白轉換? 我希望圖像具有零均值和單位差異。OpenCV(C++) - 在彩色圖像上進行美白轉換
是否有內置函數在具有3個通道的cv::Mat
上應用美白轉換? 我希望圖像具有零均值和單位差異。OpenCV(C++) - 在彩色圖像上進行美白轉換
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;
}
想要什麼(我知道)最接近的選項是使用cv::meanStdDev
(它可以處理多通道圖像),然後手動減去平均值並按每個通道的方差進行分割。